首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么MD5散列值是不可逆的?

为什么MD5散列值是不可逆的?
EN

Stack Overflow用户
提问于 2008-12-01 07:16:59
回答 9查看 38.1K关注 0票数 99

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

如果在我的服务器上,在PHP中我生成:

代码语言:javascript
复制
md5("stackoverflow.com") = "d0cc85b26f2ceb8714b978e07def4f6e"

当您通过一个MD5函数运行相同的字符串时,您将在您的PHP安装中得到相同的结果。一个过程被用来从一些起始值产生一些价值。

这不是意味着有某种方法可以解构正在发生的事情并反转散列值吗?

这些函数是什么让结果字符串无法回溯?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-12-01 07:19:56

输入素材可以是无限长度,其中输出始终为128位长。这意味着无限数量的输入字符串将生成相同的输出。

如果选择一个随机数并将其除以2,但只写下余数,您将得到0或1 --分别是偶数或奇数。有没有可能取0或1并得到原始数字?

票数 215
EN

Stack Overflow用户

发布于 2008-12-01 09:22:00

如果像MD5这样的散列函数是可逆的,那么这将是数据压缩算法历史上的一个分水岭事件!很容易看出,如果MD5是可逆的,那么任意大小的任意数据块可以仅用128位表示,而不会丢失任何信息。因此,无论原始消息的大小如何,您都可以从128位数字重建原始消息。

票数 53
EN

Stack Overflow用户

发布于 2008-12-13 11:26:28

考虑散列算法的一个好方法是考虑在Photoshop中调整图像大小……假设您有一个5000x5000像素的图像,然后将其大小调整为32x32。您所拥有的仍然是原始图像的表示,但它要小得多,并且有效地“丢弃”了图像数据的某些部分,以使其适合较小的尺寸。因此,如果你将32x32图像的大小调整到5000x5000,你得到的只是一个模糊的混乱。但是,由于32x32图像没有那么大,所以理论上可以想象,可以缩小另一个图像的大小以产生完全相同的像素!

这只是一个类比,但它有助于理解哈希的作用。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/330207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档