4

我有这个方法来散列一个字符串:

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

 return hash;

我的问题是:

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

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

4

3 回答 3

10

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

于 2010-02-26T13:55:32.867 回答
3

只要字节相同,您最终将得到完全相同的哈希值。请注意,特殊字符和空格也是字节。

维基百科链接

于 2010-02-26T13:59:35.433 回答
0

身份证取决于!如果您使用相同的编码,相同的纯文本字符串将散列到相同的 SHA1 散列!使用不同的 Encoding 会导致不同的 SHA1 哈希。

于 2010-05-31T07:17:37.183 回答