使用 Xamarin 进行 Sha512 哈希处理
Sha512 Hashing with 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 的 android 设备生成 SHA512 哈希密码。但是,当我输出 stringyHash
时,我得到的哈希值与我在使用在线哈希服务时所期望的完全不同,例如:
http://www.convertstring.com/Hash/SHA512
在线工具和我的 Xamarin 实现之间对字符串 "password" 进行哈希处理的区别如下:
赛马林:
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
在线工具:
B109F3BBBC244EB82441917ED06D618B9008DD09B3BEFD1B5E07394C706A8BB980B1D7785E5976EC049B46DF5F1326AF5A2EA6D103FD07C95385FFAB0CACBC86
我对 Xamarin 比较陌生,对散列作为概念没有什么经验,所以如果有人能解释为什么两者不同,以及如何调整我的代码以确保我生成 正确哈希值,将不胜感激。
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
是零长度字符串的 SHA-512 散列:
byte[] data = shaM.ComputeHash(Encoding.UTF8.GetBytes(""));
因此,无论您向 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 的 android 设备生成 SHA512 哈希密码。但是,当我输出 stringyHash
时,我得到的哈希值与我在使用在线哈希服务时所期望的完全不同,例如:
http://www.convertstring.com/Hash/SHA512
在线工具和我的 Xamarin 实现之间对字符串 "password" 进行哈希处理的区别如下:
赛马林:
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
在线工具:
B109F3BBBC244EB82441917ED06D618B9008DD09B3BEFD1B5E07394C706A8BB980B1D7785E5976EC049B46DF5F1326AF5A2EA6D103FD07C95385FFAB0CACBC86
我对 Xamarin 比较陌生,对散列作为概念没有什么经验,所以如果有人能解释为什么两者不同,以及如何调整我的代码以确保我生成 正确哈希值,将不胜感激。
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
是零长度字符串的 SHA-512 散列:
byte[] data = shaM.ComputeHash(Encoding.UTF8.GetBytes(""));
因此,无论您向 Xamarin 方法中输入什么,都存在问题。