3
我正在学习MD5算法。我发现有四个状态变量(我不确定这意味着什么)。这些变量是0x67452301,0xEFCDAB89,0x98BADCFE和0x10325476。我将变量转换为小数,并分别提出了1732584193,4023233417,2562383102和271733878。关于MD5状态变量的问题
我的问题是,为什么这些数字?他们是特殊的数字吗?
我正在学习MD5算法。我发现有四个状态变量(我不确定这意味着什么)。这些变量是0x67452301,0xEFCDAB89,0x98BADCFE和0x10325476。我将变量转换为小数,并分别提出了1732584193,4023233417,2562383102和271733878。关于MD5状态变量的问题
我的问题是,为什么这些数字?他们是特殊的数字吗?
参见RFC 1321,第3.3节:
3.3步骤3:初始化MD缓冲区
一个四字缓冲液(A,B,C,d)被用来计算消息摘要。 这里每个A,B,C,D都是一个32位的寄存器。这些寄存器 初始化为十六进制以下值,低位字节 第一个):
word A: 01 23 45 67 word B: 89 ab cd ef word C: fe dc ba 98 word D: 76 54 32 10
它们拾取只是升降单十六进制数字,为了(其似乎到的数字是一组令人愉快的任意初始值)。
由于他们写第一个低位字节,当你用最少的显著字节写在权,你会得到0x67452301等
他们肯定不看变量! – Grumdrig 2009-11-13 04:25:05
@Grumdrig //哦......是的......他们看起来不像变数。我应该怎么称呼他们?常量?我使用'变量'是因为... wiki和其他文档说它们是变量.. – Moon 2009-11-13 04:26:24
我会指出它们是两对半字节的反转,而一对是由低半字节组成的,其他的高8,每种几乎排序。 – Grumdrig 2009-11-13 04:28:16