来自MSDN的示例代码 http://msdn.microsoft.com/en-us/library/system.string.gethashcode.aspx
“abc”的哈希码是:536991770
但是如何将“536991770”转换回“abc”?
答案 0 :(得分:14)
无法从哈希码中获取值。请参阅hash-function定义。 哈希值不用于唯一标识原始值,对于每种类型的输入值,值不唯一。
散列函数可以映射两个或更多个 键到相同的哈希值。在很多 应用程序,是可取的 尽量减少这种情况的发生 冲突,这意味着哈希 函数必须将键映射到散列 值尽可能均匀。
答案 1 :(得分:8)
你做不到。哈希是一种方式。
哈希的东西是你丢失了信息。与字符串的长度无关,结果始终为整数。这意味着例如获取10,000个字符的字符串的has也将产生一个整数。当然不可能从这个整数中获取原始字符串。
答案 2 :(得分:2)
无法“解密”哈希码。除了其他原因之外,因为两个不同的字符串可能很好地产生相同的哈希码。仅这一特征就无法扭转这一过程。
答案 3 :(得分:1)
你不能,
即使你将拥有一个包含世界上所有字符串的表及其哈希码,你也无法实现这一点,因为有更多的字符串然后整数(约40亿英寸)因此有几个字符串导致相同的哈希代码。