最近,我注意到 SHA 算法计算随机长度的哈希。
HashAlgorithm provider;
provider = HashAlgorithm.Create("System.Security.Cryptography.SHA256");
while(!stackoverflow) {
Console.WriteLine(Encoding.UTF8.GetString(
provider.ComputeHash(Encoding.UTF8.GetBytes(
(new Random()).Next().ToString())))
.Count().ToString());
}
输出:
29
29
30
29
29
30
29
31
29
29
32
29
30
28
...
是否可以设置最大哈希长度?(可以使散列无用..)或者我在计算散列时做错了什么?编码?
编辑:
上面的片段只是一个例子。最后我需要的是一个方法,它接受一个字符串,计算字符串的哈希值并返回它。HashAlgorithm.ComputeHash
接受字节并返回字节,所以我使用UTF8.GetBytes()
/UTF8.GetString()
进行转换,这似乎是一个巨大的错误。