作者:大海2502902497 | 来源:互联网 | 2023-10-13 10:28
MD5算法是什么?
它可以讲字符串或者一个文件流变成一个长度为32的字符串
特点: 加密不可逆
MD5存在的意义:
写法:用C#实现MD5
1.将字符串用MD5算法处理
准备一个字符串
将字符串变成一个字符数组
创建MD5对象,调用其ComputeHash方法
得到一个16个字节的字节数组
使用SB拼接,将每个字节用ToString("x2")处理
代码:
---------------------将一个字符串用MD5处理-------------------------
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
{
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
{
sb.Append(bs[i].ToString("x2"));
}
Console.WriteLine(sb.ToString());
Console.ReadKey();