MD5计算

来源:互联网 发布:c语言中进制转换 编辑:程序博客网 时间:2024/05/23 02:15

MD5算法

MD5算法是一种散列(hash)算法,又叫:摘要算法,指纹算法。注意它不是一种加密算法,加密算法都对应着解密,MD5是单项的,没有解密算法。MD5算法长度一般是32位的16进制数字符串。

MD5算法的应用

(1)数据库密码明文存储转换为MD5存储。这样系统管理员、黑客也不知道用户的密码是什么,也就避免了用户的其他系统密码被利用的问题。

(2)计算文件的MD5值来检验文件是否有被篡改过。

MD5算法的特点

(1)长度固定

(2)单向性

(3)抗冲突性(不重复)

(4)雪崩效应,只要源发生一点变化,就会对MD5值造成很大的变化

MD5理论上是不可逆的,破解只有通过“碰撞”,通过两个不同的内容生成相同的MD5值,但是这种碰撞概率非常小。

通过.net库来进行MD5计算

(1)创建一个MD5对象,因为MD5继承了IDisposable接口,所以要用using来括起来,或者最后把他关闭。

(2)因为MD5是使用二进制来进行计算编码,所以先把字符串转换为二进制

(3)进行MD5计算

(4)再把计算的结果进行二进制转换为16进制的字符串显示出来

<span style="font-family:Microsoft YaHei;font-size:18px;">StringBuilder sb = new StringBuilder();            //1.创建一个计算MD5值的对象            using (MD5 md5 = MD5.Create())            {                 //1.1把字符串转换为byte数组                byte[] bytes = System.Text.Encoding.Default.GetBytes(msg);                //把byte数组转换为字符串               // string msg = Encoding.UTF8.GetString(bytes);                //2.调用该对象的方法进行MD5计算                byte[] md5Byte = md5.ComputeHash(bytes);            //3.把结果以字符串的形式返回                for (int i = 0; i < md5Byte .Length; i++)                {                    sb.Append(md5Byte[i].ToString("x2"));                }            }            return sb.ToString();</span>



0 0
原创粉丝点击