如何进行单向散列?

Tho*_*Lai -1 algorithm hash encode

我想知道,一种方式哈希是如何实现的?你怎么能只在一个方向而不是另一个方向编码一个字符串?如果你反转算法,你不能解码像md5这样的东西吗?在我之前,唯一可行的方法是让它生成随机答案,而不是使用算法.但它每次都以同样的方式散列.请向我解释一下.

ami*_*mit 5

如果您"反向"算法,则无法返回原始字符串,因为可能的字符串多于可能的哈希码.

想想一个结果是64位整数的算法.这样的数字有2 ^ 64 =(2 ^ 8)^ 8 = 256 ^ 8.

但这意味着,如果有超过256 ^ 8个可能的字符串,那么必须有两个字符串散列到相同的值(这称为鸽子原理).由于有更多的字符串长度为9(256 ^ 9个这样的字符串),因此您可以获得哈希值这一事实并不能保证您可以"返回".