MD5三种方法的学习总结
MD5百度百科
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4
简介
入行没多久,听见别人吹牛MD5加密不可以破解。作为当时菜鸟的我乍一听,这个这么叼的?现在入行一年多了,发现原来MD5就是一行代码的事情,如果不够再加一行呗。
.NET早期MD5加密
早期的MD5加密的方法,真的只有一段代码。不信请看如下代码:
System.Web.Security下面的静态类FormAuthentication下中的HashPasswordForStoringInConfigFile方法加密可以对字符串进行想要的算法加密,如果要用的话,直接一段代码即可。但是作为有强迫证的程序猿还是写个方法比较。但是,注意到方法上面的Obsolete类的注释,发现该方法已经过时,过时并不是不能使用而已,如果想简单点的话,这一段代码还是能使用的。
.NET现在的加密方法
早期的MD5加密方法,已经过时。随着需求越来越大,安全性越来越高,微软推出了MD5类。
推出的MD5类中,改MD5CryptoServiceProvider继承MD5类。该方法主要是通过将字符串转换成操作系统当前的当前 ANSI 代码页的编码的字节序列比特数组。在通过MD5CryptoServiceProvider中的ComputeHash方法计算比特数组的哈希值,最后加计算过后的数组进行字符串重组,也就组成当前的MD5字符串
总结下,第一种方法比较简单实用,但是过时了,缺乏安全性;第二种方法安全性较高,还以进字符串的进行二次甚至多次加密,拓展性更强(毕竟推出的新方法)。不是说好的三种方法的吗?怎么就总结了?其实想想C#语言进行加密运算的时候,作为开发人员当数据库一堆加密后的字符串怎么办?所以数据库当然也可以进行MD5加密了,为了更好的方便管理程序。之前在公司看到数据库自定义函数可以直接用MD5改变登录密码,修改该函数,发现/* Definition is encrypted. */该函数被加密。之后自己摸索了半个小时,才将百度到的MD5函数进行加密。如下图所示。
中间注释掉的为加密或绑定,这样就可以自己写个函数而不给别人使用了O(∩_∩)O哈哈~。
SQLMD5加密
通过上面的数据库的加密,自己定义了个方法,主要是通过数据库函数返回的值
以上就是MD5学习的三种方法,记录下自己的心得。。。。。。。
MD5三种方法的学习总结的更多相关文章
- mac学习Python第一天:安装、软件说明、运行python的三种方法
一.Python安装 从Python官网下载Python 3.x的安装程序,下载后双击运行并安装即可: Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的. MAC 系统一般 ...
- 清空StringBuilder的三种方法及效率
清空StringBuilder的三种方法及效率 大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilde ...
- mysql分表的三种方法
先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间.根据个人经验,mysql执行一 ...
- 【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法
众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的.比如下面的情况: 解决这个问题常用的有三种方法:1.通过转换为UTF-8编码来显示.2.使用i ...
- ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
http://www.cnblogs.com/zyqgold/archive/2010/11/22/1884779.html 在ASP.NET MVC框架中,将视图中的数据传递到控制器中,主要通过发送 ...
- asp.net跳转页面的三种方法比较
目前,对于学习asp.net的很多朋友来讲,实现跳转页面的方法还不是很了解.本文将为朋友们介绍利用asp.net跳转页面的三种方法,并对其之间的形式进行比较,希望能够对朋友们有所帮助. ASP.NET ...
- 设置css三种方法的优先级
有的小伙伴问了,如果有一种情况:对于同一个元素我们同时用了三种方法设置css样式,那么哪种方法真正有效呢?在下面代码中就出现了这种情况 1.使用内联式CSS设置“超酷的互联网”文字为粉色. 2.然后使 ...
- C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP)
原文:C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP) 最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数 ...
- CSS实现导航条Tab的三种方法
前面的话 导航条Tab在页面中非常常见,本文说详细介绍CSS实现导航条Tab的三种方法 布局 根据上图所示,先规定几个定义,上图的模块整体叫做导航,由导航标题和导航内容组成.要实现上图所示的布 ...
随机推荐
- PythonOpenCV:MLP用于最近邻搜索
一:简单C++版本的链接: http://blog.csdn.net/kaka20080622/article/details/9039749 OpenCV的ml模块实现了人工神经网络(Artific ...
- AdaBoost--从原理到实现(Code:Python)
本文对原文有修改,若有疑虑,请移步原作者. 原文链接:blog.csdn.net/dark_scope/article/details/14103983 集成方法在函数模型上等价于一个多层神经网络, ...
- Visual Studio Code 插件推荐
Path Intellisense - 路径补全 HTML Snippets - HTML 标记增强 Markdown+Math - Markdown 增强(数学表达式) vscode-icons - ...
- 【JSP】简单登陆界面
学生登陆查询系统 1 程序的主要功能及特点 实现一个登录界面的基本功能,具体要求: 登录界面login.jsp含有表单,用户能够输入用户名和密码,并提交表单给verify.jsp. Verify.js ...
- servlet_获取初始化参数
在web.xml的<servlet>标签中增添 <init-param> <param-name>XXX</param-name> <param- ...
- drf02 序列化器详解 Serializer
作用 1. 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串2. 反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型3. 反 ...
- Linux:只复制文件权限和所有者
在Linux上,怎么把一个文件的<权限和所有者>赋给另一个文件呢? chown命令可以设置所有者和用户组:chmod可以设置文件的权限.这两个命令都支持使用另一个文件做为引用(RFILE) ...
- 01-Linux命令基础-第01天(命令基础,软件安装与卸载、磁盘管理)
01- Linux初步 最早一直是单道程序设计模型的操作系统 69年贝尔实验室决定开发多道程序设计模型的操作系统 Multics计划 (失败了) x86 IA(Intel Architecture ...
- Problem 25
Problem 25 The Fibonacci sequence is defined by the recurrence relation: Fn = Fn−1 + Fn−2, where F1 ...
- 【学习笔记】有向无环图上的DP
手动博客搬家: 本文发表于20180716 10:49:04, 原地址https://blog.csdn.net/suncongbo/article/details/81061378 首先,感谢以下几 ...