早教吧作业答案频道 -->其他-->
MD5的实现1.问题描述MD5以512比特一块的方式处理输入的消息文本,每个块又划分为十六个32比特的子块。算法的输出由四个32比特的块组成,将它们级联成一个128比特的Hash值。①首先填充
题目详情
MD5的实现
1.问题描述
MD5以512比特一块的方式处理输入的消息文本,每个块又划分为十六个32比特的子块。算法的输出由四个32比特的块组成,将它们级联成一个128比特的Hash值。
①首先填充消息使填充后的长度恰好为一个比512的倍数小64的数。填充方法是附一个“1”在消息后面,再补多个“0”。然后,在其后附上64比特的消息长度(填充前)的二进制表示。算法中使用了四个32比特的变量A、B、C、D,先把这四个变量初始化为:
A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210
称它们为链接变量。
3 接着进行算法的主循环,循环的次数是消息中512比特的块的数目。
将上面四个变量复制到另外的变量中:A到AA,B到BB,C到CC,D到DD。
主循环有四轮, 每一轮由16次操作组成。F、G、H、I函数,FF、GG、HH、II四种操作详见教材P116-P118。所有这些步骤进行完之后,将A、B、C、D分别加上AA、BB、CC、DD,然后用下一块数据继续进行算法。
③最后的输出是A、B、C、D的级联。
2.基本要求
以MD5(x)的形式实现,x为01串。
3. 实现提示
注意消息文本、各种变量的类型及其类型转换。
1.问题描述
MD5以512比特一块的方式处理输入的消息文本,每个块又划分为十六个32比特的子块。算法的输出由四个32比特的块组成,将它们级联成一个128比特的Hash值。
①首先填充消息使填充后的长度恰好为一个比512的倍数小64的数。填充方法是附一个“1”在消息后面,再补多个“0”。然后,在其后附上64比特的消息长度(填充前)的二进制表示。算法中使用了四个32比特的变量A、B、C、D,先把这四个变量初始化为:
A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210
称它们为链接变量。
3 接着进行算法的主循环,循环的次数是消息中512比特的块的数目。
将上面四个变量复制到另外的变量中:A到AA,B到BB,C到CC,D到DD。
主循环有四轮, 每一轮由16次操作组成。F、G、H、I函数,FF、GG、HH、II四种操作详见教材P116-P118。所有这些步骤进行完之后,将A、B、C、D分别加上AA、BB、CC、DD,然后用下一块数据继续进行算法。
③最后的输出是A、B、C、D的级联。
2.基本要求
以MD5(x)的形式实现,x为01串。
3. 实现提示
注意消息文本、各种变量的类型及其类型转换。
▼优质解答
答案和解析
如下代码是md5的一个简单实现,md5_encode函数接收一个文件名,计算该文件的16进制的md5值,要改成你的需求,只需输入输出改一下即可,函数最后计算出的A、B、C、D既是要求的值,要注意的是,这里为了简便,利用了硬...
看了 MD5的实现1.问题描述MD...的网友还看了以下:
硫酸钡是强电解质,那为什么它在水溶液中只分离出一部分离子 2020-04-10 …
化学问题(需要理由)一般的布料在100摄氏度的水里会分解出一些多人体有害的物质吗?就像磨豆腐时用布 2020-05-17 …
放在斜面上的物体所受重力竖直向下,物体为什么能分解出一个垂直于斜面的一个分力?放在斜面上物体的重力 2020-05-17 …
一个等腰三角形的一个底角是30°,它的顶角是°,如果按角来分它是一个三角形. 2020-05-21 …
根据这个句子括号部分写出一个单词What(made)me(interested)mostinthe 2020-05-23 …
一匣子中装有5个红球,6个黑球,若取出一个红球为2分,取出一个黑球为1分,现从匣中取5个球,则取出 2020-06-21 …
科学家从牛的胰脏中分离出一条由76个氨基酸组成的多肽链(Ub).研究发现Ub在细胞自我监测和去除某 2020-06-24 …
科学家从哺乳动物早期胚胎中分离出一类胚胎干细胞(ES细胞),并进一步将ES细胞诱导分化出某些组织细 2020-06-27 …
已知4路公交车每10分开出一辆,6路公交车每15分开出一辆,两车同时开出后,至少再过多少分两车又同 2020-07-07 …
某溶液含硝酸铜、硝酸银、硝酸钡三种溶质,为使上述三种物质分别转化为沉淀分离出来,现提供碳酸钠溶液、 2020-07-08 …