Sha512用Xamarin哈希

时间:2016-02-29 14:48:10

标签: c# android hash xamarin sha512

请考虑以下代码:

   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

散列字符串&#34;密码&#34;的区别在线工具和我的Xamarin实现之间如下:

Xamarin:

  

cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e

在线工具:

  

B109F3BBBC244EB82441917ED06D618B9008DD09B3BEFD1B5E07394C706A8BB980B1D7785E5976EC049B46DF5F1326AF5A2EA6D103FD07C95385FFAB0CACBC86

我对Xamarin相对较新,并且几乎没有使用散列作为概念的经验,所以如果有人能解释为什么两者不同,以及如何调整我的代码以确保我生成正确的哈希,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

  

cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e

是零长度字符串的SHA-512哈希:

byte[] data = shaM.ComputeHash(Encoding.UTF8.GetBytes(""));

因此,您在Xamarin方法中提供的任何内容都存在问题。