当在传统的ASP(VBScript)的使用CAPICOM进行MD5哈希像这样:传统的ASP使用CAPICOM的MD5哈希 - 结果从.NET System.Security.Cryptography不同
With server.CreateObject("CAPICOM.HashedData")
.Algorithm = 3 ' CAPICOM_HASH_ALGORITHM_MD5
.Hash "password"
md5Pwd = .Value
End With
我得到这样的结果:B081DBE85E1EC3FFC3D4E7D0227400CD
当我使用.NET,我得到这样的结果:5f4dcc3b5aa765d61d8327deb882cf99
为什么是MD5字符串不同?我究竟做错了什么?
这里是我的C#功能:
MD5 md5Hasher = MD5.Create();
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(val));
StringBuilder sBuilder = new StringBuilder();
// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for(int i = 0; i < data.Length; i++) {
sBuilder.Append(data[i].ToString("x2"));
}
// Return the hexadecimal string.
return sBuilder.ToString();