2010-02-26 185 views
4

我有这样的方法哈希的字符串:SHA1哈希问题

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

return hash; 

我的问题是:

是结果哈希总是相同的字符串一样吗?

几天前我散列了一个字符串,它似乎现在导致了另一个散列,但我不确定。

+5

你不加密任何东西,你哈希:http://en.wikipedia.org/wiki/Hash_function – 2010-02-26 13:55:53

+1

你不能用提供的代码告诉......当你从一个编码改变到另一个编码的哈希也会改变。但我认为enc是固定的 - > Ignacios答案。 – tanascius 2010-02-26 13:59:43

回答

10

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

3

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

Wikipedia Link

0

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