MD5哈希值怎么会不可逆? [英] How come MD5 hash values are not reversible?
问题描述
如果在我的服务器上,在PHP我产生:
md5(stackoverflow.com)=d0cc85b26f2ceb8714b978e07def4f6e
当您通过MD5功能运行相同的字符串时,您将在PHP安装上获得相同的结果。一个进程正在被用来从一些起始值产生一些价值。
这是不是意味着有一些方法可以解构出正在发生的事情并颠倒哈希值?
这些函数是什么使得产生的字符串不可能回溯?
输入素材可以是一个无限长度,其输出总是128位长。这意味着无限数量的输入字符串将产生相同的输出。
如果您选择一个随机数并将其除以2,但只写下余数,分别得到0或1 - 偶数或奇数。是否可以取0或1并获得原始号码?
One concept I've always wondered about is the use of cryptographic hash functions and values. I understand that these functions can generate a hash value that is unique and virtually impossible to reverse, but here's what I've always wondered:
If on my server, in PHP I produce:
md5("stackoverflow.com") = "d0cc85b26f2ceb8714b978e07def4f6e"
When you run that same string through an MD5 function, you get the same result on your PHP installation. A process is being used to produce some value, from some starting value.
Doesn't this mean that there is some way to deconstruct what is happening and reverse the hash value?
What is it about these functions that makes the resulting strings impossible to retrace?
The input material can be an infinite length, where the output is always 128 bits long. This means that an infinite number of input strings will generate the same output.
If you pick a random number and divide it by 2 but only write down the remainder, you'll get either a 0 or 1 -- even or odd, respectively. Is it possible to take that 0 or 1 and get the original number?
这篇关于MD5哈希值怎么会不可逆?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!