.Net SHA256Managed 产生无效散列
我正在编写一个函数来在文件上生成 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。 (这也是一个问题)我想知道我是否以正确的方式使用该库。 请帮忙
I'm writing a function to produce a SHA256 hash on a file.
Here is the code I use
public string ComputeHash(Byte[] inputBytes)
{
Byte[] hashedBytes = new SHA256Managed().ComputeHash(inputBytes);
return BitConverter.ToString(hashedBytes);
}
Very simple. The fact is that the hashing produced seems not to be valid, according on a couple of tool I tried and, in effect, is different from any other sha256 string I ever seen (and is not even 256 byte).
One result, for example is
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
Even if I trim out every - char, everything is uppercase, while I always saw lowercase rappresentation. (Is that a problem too) I'm wondering if I'm using the library in a correct way.
please help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SHA-256 表示 256 位,即 32 字节,这就是您所看到的。
小写和大写在这里无关紧要 - 这只是将字节表示为字符串。无论字节之间是否有连字符,也是如此。不同的工具会产生不同的十六进制字符串表示形式,仅此而已......所以我希望“1210B2”相当于“12-10-b2”等。
SHA-256 means 256 bits, aka 32 bytes which is what you're seeing.
Lower-case and upper-case are irrelevant here - that's just the representation of the bytes as a string. Ditto whether or not there are hyphens between the bytes. Different tools produce different hex string representations, that's all... so I'd expect "1210B2" to be equivalent to "12-10-b2" etc.