如何为字符串的不同排列生成唯一的哈希值?
How do I generate a unique hash for different permutations of a string?
如果我将字母表中的每个字母分配给不同的质数并使用字母的乘积,我将得到一个散列函数,该函数告诉我 "abc" 与 "cba" 相同。
我可以使用什么散列函数来使 "abc" 与 "cba" 不同?
最好的办法是坚持现有的哈希算法,例如 SHA-256。
byte[] strBytes = System.Text.Encoding.UTF8.GetBytes(str);
byte[] hash = System.Security.Cryptography.SHA256.Create().ComputeHash(strBytes);
这将计算您输入的每个字符串的唯一哈希值。
旁注:交集(2 个字符串等于相同的散列)是可能的,但非常极不可能!
如果我将字母表中的每个字母分配给不同的质数并使用字母的乘积,我将得到一个散列函数,该函数告诉我 "abc" 与 "cba" 相同。
我可以使用什么散列函数来使 "abc" 与 "cba" 不同?
最好的办法是坚持现有的哈希算法,例如 SHA-256。
byte[] strBytes = System.Text.Encoding.UTF8.GetBytes(str);
byte[] hash = System.Security.Cryptography.SHA256.Create().ComputeHash(strBytes);
这将计算您输入的每个字符串的唯一哈希值。
旁注:交集(2 个字符串等于相同的散列)是可能的,但非常极不可能!