MD5哈希值怎么会不可逆? [英] How come MD5 hash values are not reversible?

查看:112
本文介绍了MD5哈希值怎么会不可逆?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直想知道的一个概念是使用加密散列函数和值。我知道这些函数可以生成一个独特的哈希值,并且几乎不可能逆转,但是我一直在想:



如果在我的服务器上,在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆