hash - MD5 哈希算法中的填充

标签 hash md5

我需要了解 Md5 哈希算法。我正在阅读一份文件,它指出

“消息被“填充”(扩展),因此它的长度(以位为单位)是
与 448 模 512 一致。也就是说,消息被扩展为
它仅比 512 位长的倍数少 64 位。
填充总是被执行,即使消息的长度是
已经与 448,模 512 一致。”

我需要用简单的术语来理解这意味着什么,尤其是 448 modulo 512。MODULO 这个词就是问题所在。请我欣赏简单的例子。有趣的是,这是 MD5 哈希的第一步! :)

谢谢

最佳答案

Modulo 或 mod 是一个函数,它可以告诉您两个数字相除时的余数。

例如:

5 模 3:

5/3 = 1,余数为 2。所以 5 mod 3 是 2。

10 模 16 = 10,因为 16 不能成立。

15 模 5 = 0,因为 15 正好 3 次进入 5。 15 是 5 的倍数。

回到学校时,您会以“剩余”或“剩余”的形式学习,模只是一种奇特的说法。

这里的意思是,当您使用 MD5 时,发生的第一件事就是您填充消息以使其足够长。在 MD5 的情况下,您的消息必须是 n 位,其中 n= (512*z)+448 并且 z 是任意数字。

例如,如果您有一个 1472 位长的文件,那么您将能够将其用作 MD5 哈希,因为 1472 模 512 = 448。如果该文件长 1400 位,那么您需要填充在运行其余的 MD5 算法之前,需要额外的 72 位。

关于hash - MD5 哈希算法中的填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9699116/

相关文章:

ruby - 如何比较 Ruby 数组和散列的内容?

hash - 这个登录方案安全吗?

c# - 一致地生成对象的哈希值

c# - 更快的 MD5 替代品?

android - MD5签名如何影响应用程序安全?

php - 如何使用 PHP 以编程方式构建 APR1-MD5

algorithm - 证明二次探测函数

c - 用于数百万个UINT64 RGBZ图形像素的最快HASH算法

javascript - 字符串的简单 MD5 散列

java - 在java中将MD5转换成String