我们不能使用类似 md5 的哈希算法来存储大数据吗?

我们不能使用类似 md5 的哈希算法来存储大数据吗?

我读过一篇关于哈希算法如何使用的论文,我发现了一件奇怪的事情。

MD5 输入长度不受限制,输出长度始终相同

那么这是否意味着您可以将任何大文件转换为仅 16 个字节?唯一的障碍是“如果没有原始数据,如何恢复数据”我明白这一点,但没有办法制作可逆哈希函数吗?如果您可以做到这一点,它将改变互联网的工作方式实际上 10MB 的图像现在只有 15 个字节,您可以将 10GB 程序压缩为 16 个字节。我在这里理解错误吗?

答案1

哈希只是特殊用途的指纹。如果你有我的拇指印,你不知道我的脸长什么样。通过检查指纹就足以比较人了。哈希不是压缩!

如果您有两个 2 字节和一个生成一个字节哈希的哈希函数,则平均会有 256 次冲突(相同哈希)。这是因为 2 字节为您提供 65536 种不同的状态,而一个字节有 256 种状态,65536 种状态 /256 种状态平均等于每个哈希状态重复 256 次。

由于这种影响,没有必要恢复哈希来枚举可能产生特定哈希的任何可能输入。

对于所谓的加密哈希,有一个特殊要求:如果攻击者操纵了您的文件,他应该无法以不改变文件哈希的方式来进行操作。

相关内容