1
7
填充过程不能产生冲突。如果你有消息 米 它被塞进 下午 ,长度是512的倍数。现在想象一下 下午 作为信息 米 就其本身而言,即填充位已经添加,就好像它们是消息的一部分。如果填充保持不变 米 按照你的建议,保持不变 米 和 米 将生成相同的哈希值,即使它们是不同的消息。那将是一次碰撞,也被称为“根本不好”。 一般来说,填充过程必须确保它可能被明确地删除:您必须能够查看填充的消息,并毫不犹豫地决定哪些位来自消息本身,哪些位是作为填充添加的。哈希函数过程中的任何内容都不能真正消除填充,但它在概念上必须是可行的。如果长度为512倍的消息完全不加任何位,这在数学上是不可能的。 以上是所有哈希函数的通用。MD5和同一个通用族的一些函数(包括sha-1、sha-256…),使用 Merkle-DamgÃ¥rd construction ,还需要在填充中对输入数据长度进行编码(这是实现某些安全性证明所必需的)。在MD5中,长度编码为64位数字。对于“1”位,任何消息至少有65个填充位(最多511个)。 |
Jahongir Rahmonov · 计算文件的校验和 6 年前 |
Lev Knoblock · 类哈希函数 6 年前 |
Sazzad Hissain Khan · 算法-在二维矩阵中搜索 6 年前 |
Asur · 如何在PHP中同时使用多种算法对文件进行哈希? 6 年前 |
OofYeetMcGee · 实现PBKDF2 6 年前 |
yibs · 如何在Perl中计算csv中具有相同id的项目数 6 年前 |