我正在寻找一个强大的散列函数(算法)来散列我的代码。 我想将散列字符串恢复为原始字符串。
(我可以将 sha
恢复到原始状态吗?)
你能帮帮我吗?
最佳答案
您无法从哈希中恢复原始数据,因为它在设计上是不可逆的。通常的解释是 Pigeonhole Principle - 大多数哈希值约为 128-256 位,因此大小为 16-32 字节。一旦您的字符串比这更长(甚至在此之前),就会有两个具有相同散列的字符串。这称为 collision .
另请注意,短于 16-32 字节的字符串通常可以反转,但您不应该依赖它,因为也可能会发生冲突。例如,散列一些字符串,如 test
并在 Google 上搜索散列。
尽管如此,即使 test
和其他一些短词也可能具有相同的散列,因此您永远无法 100% 确定您拥有正确的字符串。
关于algorithm - 哈希字符串的强大功能并恢复它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476217/