SHA1哈希问题

4

我有一个字符串哈希的方法:

 byte[] buffer = enc.GetBytes(text);
 SHA1CryptoServiceProvider cryptoTransformSHA1 =
                new SHA1CryptoServiceProvider();
 string hash = BitConverter.ToString(
                cryptoTransformSHA1.ComputeHash(buffer)).Replace("-", "");

 return hash;

我的问题是:

对于相同的字符串,生成的哈希值是否总是相同的?

几天前我对一个字符串进行了哈希处理,现在似乎得到了另一个哈希值,但我不确定。


5
你并没有进行加密,而是进行了哈希操作:http://zh.wikipedia.org/wiki/%E5%93%88%E5%B8%8C%E5%87%BD%E6%95%B0 - Otto Allmendinger
1
提供的代码无法确定...当您将编码从一种更改为另一种时,哈希值也会发生变化。但我假设编码是固定的--> Ignacios答案。 - tanascius
3个回答

10

是的,相同的明文字符串每次都会散列成相同的SHA1散列值。


3
只要字节相同,就会得到完全相同的哈希值。请注意,特殊字符和空格也是字节。

维基百科链接


0

这取决于ID!如果您使用相同的编码方式,相同的纯文本字符串将哈希为相同的SHA1哈希值!使用不同的编码方式将导致不同的SHA1哈希值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接