请看下面的代码:
我正在使用上述方法通过Xamarin为安卓设备生成一个SHA512哈希密码。然而,当我输出 "stringyHash" 时,与网上哈希服务(如: http://www.convertstring.com/Hash/SHA512)结果不同。
以下是在线工具和我的Xamarin实现中以 "password" 为例哈希字符串的差异:
Xamarin:
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e 在线工具:
B109F3BBBC244EB82441917ED06D618B9008DD09B3BEFD1B5E07394C706A8BB980B1D7785E5976EC049B46DF5F1326AF5A2EA6D103FD07C95385FFAB0CACBC86
作为一个对哈希和Xamarin了解较少的新手,若有人能够解释两者之间的差异,并指导我如何调整代码以确保产生正确的哈希,将不胜感激。
SHA512 shaM = new SHA512Managed();
byte[] data = shaM.ComputeHash(Encoding.UTF8.GetBytes("password"));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
string stringyHash = sBuilder.ToString();
我正在使用上述方法通过Xamarin为安卓设备生成一个SHA512哈希密码。然而,当我输出 "stringyHash" 时,与网上哈希服务(如: http://www.convertstring.com/Hash/SHA512)结果不同。
以下是在线工具和我的Xamarin实现中以 "password" 为例哈希字符串的差异:
Xamarin:
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e 在线工具:
B109F3BBBC244EB82441917ED06D618B9008DD09B3BEFD1B5E07394C706A8BB980B1D7785E5976EC049B46DF5F1326AF5A2EA6D103FD07C95385FFAB0CACBC86
作为一个对哈希和Xamarin了解较少的新手,若有人能够解释两者之间的差异,并指导我如何调整代码以确保产生正确的哈希,将不胜感激。
SHA512
包装在using
中,因为它是可处置的。 - Dmitry Bychenko