它能够讲字符串或者一个文件流变成一个长度为32的字符串算法
特色: 加密不可逆数组
MD5存在的意义:ui
写法:用C#实现MD5加密
准备一个字符串对象
将字符串变成一个字符数组md5
建立MD5对象,调用其ComputeHash方法字符串
获得一个16个字节的字节数组string
使用SB拼接,将每一个字节用ToString("x2")处理it
---------------------将一个字符串用MD5处理-------------------------coding
string str="abc";
//字节数组
//若是是字符串是英文,用Encoding.UTF8,若是是中文就用Encoding.GetEncoding("gb2312")
bytes[] bs = Encoding.UTF8.GetBytes(str);
//准备MD5对象
MD5 md5 = MD5.Create();
//计算指定字节数组的哈希值
bs=md5.ComputeHash(bs);
StringBuilder sb = new StringBuilder();
由于对于字节若是用十进制表示为0-255,用二进制表示为0000000-11111111,十六进制为000000-FFFFFF,为了统一处理,这里作了统一,用十六进制
for(int i=0;i<bs.Length;i++)
{
sb.Append(bs[i].ToString("x2"));
}
Console.WriteLine(sb.ToString());
Console.ReadKey();
----------------------将一个文件用MD5算法处理-----------------------
MD5 md5=MD5.Create();
string path=@"文件路径";
//准备好byte数组
byte[]bs;
using(FileStream file= new FileStream(path,FileMode.Open,FileAccess.Read))
{
bs = md5.ComputeHash(file);
}
//后面的代码和上面处理字符串的代码同样用
for(int i=0;i<bs.length;i++)
{
sb.Append(bs[i].ToString("x2"));
}
Console.WriteLine(sb.ToString());
Console.ReadKey();