基于MD5哈希函数,已知总块比特数与填充位,求原始消息长度
MD5原始消息长度计算问题解答
首先明确MD5的填充规则:
- 第一步:在原始消息末尾先添加1个
1比特,再添加若干0比特,使得填充后的消息长度模512等于448比特; - 第二步:最后添加固定的64比特,用来存储原始消息的比特长度。
已知处理的总块数是2467个,每个MD5块为512比特,所以总处理长度为:2467 * 512 = 1263104比特,这个长度已经包含了原始消息 + 第一步的填充比特 + 第二步的64比特长度字段。
你的计算逻辑完全错误,正确的原始消息长度计算公式应为:原始消息长度 = 总处理长度 - 填充比特数 - 64比特
代入已知数值:原始消息长度 = 1263104 - 51 - 64 = 1262989比特
需要注意:这里的“填充大小为51比特”指的是第一步添加的所有比特(包含开头的1个1比特和后续的50个0比特),符合MD5填充后长度模512等于448的规则(验证:1262989 + 51 = 1263040,1263040 mod 512 = 448,满足要求)。
内容的提问来源于stack exchange,提问作者luciferRayan
相关产品推荐
相关产品推荐

