MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
private static string ToMd5(string s)
{
StringBuilder sb = new StringBuilder();
MD5 md5 = new MD5CryptoServiceProvider();
byte[] bytesInput = Encoding.UTF8.GetBytes(s);
byte[] bytesResult = md5.ComputeHash(bytesInput);
foreach (var item in bytesResult)
{
sb.Append(item.ToString("X2"));// x 为十六进制 ,字母的大小写 取决于 x的大小写 ,2代表十六进制的格式控制,每次都是两位数
}
return sb.ToString();
}