2011-01-28 92 views
1

我在写一个函数来产生文件上的SHA256哈希。 这里是我的代码使用.Net SHA256管理产生无效哈希

public string ComputeHash(Byte[] inputBytes) 
    { 
     Byte[] hashedBytes = new SHA256Managed().ComputeHash(inputBytes); 
     return BitConverter.ToString(hashedBytes); 
    } 

很简单。事实是,根据我尝试过的几个工具,产生的哈希似乎并不是有效的,实际上,与我见过的任何其他sha256字符串不同(甚至不是256字节)。 一个结果,例如是

12-10-B2-60-24-75-11-95-B5-F7-F6-64-39-C3-22-9F-E7-E7-D4-13-69-18-99-C5-A7-C5-EC-2F-E2-D6-09-19 

即使我修剪出每 - 焦炭,一切都是大写的,而我总是看到小写rappresentation。 (这也是一个问题)我想知道我是否以正确的方式使用库。 请帮助

+0

尝试`返回string.Concat(hashedBytes.Select(x = > x.ToString(“x2”)));`而是。 – LukeH 2011-01-28 16:26:11

回答

5

SHA-256指256 ,又名32 字节这是你看到的。

小写字母和大写字母在这里是不相关的 - 这只是字节作为一个字符串的表示形式。同上字节之间是否有连字符。不同的工具会产生不同的十六进制字符串表示,这就是所有...所以我期望“1210B2”等同于“12-10-b2”等。

+0

您认为有更好的方式获取字符串表示形式,而不是使用BitConverter.ToString方法吗? – themarcuz 2011-01-28 16:27:06