![]() |
1
4
MD5在位级别使用big-endian约定,在字节级别使用little-endian约定。 输入是一个有序的位序列。8个连续位是 字节 . 一个字节的数值介于0和255之间;一个字节中的每个位的值为128、64、32、16、8、4、2或1, 按这个顺序 (这就是“big endian at bit level”的意思)。 四个连续字节是一个32位字。字的数值介于0和4294967295之间。第一个字节是 最低显著性 在那个词中(“字节级的小尾数”)。因此,如果四个字节是 一 , 乙 , C 和 D 按这个顺序,那么数字值这个词是 A+256*B+65536*C+16777216*D . 在软件应用程序中,输入几乎总是一个字节序列(以位为单位的长度是8的倍数)。假定位到字节的聚合已经发生。因此,额外的“1”填充位将是下一个字节的第一位,并且,由于位级约定是big endian,所以下一个字节将具有数值128(0x80)。 对于空消息,第一个位将是“1”填充位,后面跟着一整串零。消息长度也是零,它对其他零进行编码。因此,如您所示,填充的消息块将是一个“1”,后跟511“0”。当位组合成字节时,第一个字节的值为128,后面是值0的63个字节。当字节分组成32位字时,第一个字( 米 零 )将有数值128和其他15个字( 米 一 到 米 十五 )将具有数值0。 请参阅 MD5 specification 有关详细信息。我上面描述的是RFC1321第2节第一段中的解释。相同的编码用于消息位长度(填充末尾),并用于写出最终的哈希结果。 |
![]() |
Jahongir Rahmonov · 计算文件的校验和 7 年前 |
![]() |
Lev Knoblock · 类哈希函数 7 年前 |
![]() |
Sazzad Hissain Khan · 算法-在二维矩阵中搜索 7 年前 |
![]() |
Asur · 如何在PHP中同时使用多种算法对文件进行哈希? 7 年前 |
![]() |
OofYeetMcGee · 实现PBKDF2 7 年前 |
![]() |
yibs · 如何在Perl中计算csv中具有相同id的项目数 7 年前 |