早教吧作业答案频道 -->其他-->
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...的网友还看了以下:
棱台体积公式,我发现两个公式不知道哪一个对,S=H/6[A*B+a*b+(A+a)*(B+b)]和 2020-05-15 …
如图是某蛋白质分子的结构示意图,图中A链由21个氨基酸组成,B链由19个氨基酸组成,图中“-S-S 2020-06-26 …
若用NA表示阿伏伽德罗常数,下列叙述正确的是A、1L1mol/L醋酸中含有NA个氢离子B、1mol 2020-06-27 …
S8和P4的分子中都只有共价单键,若P4分子中有6个P-P键,则可推断S8分子有个S-S键;己知: 2020-07-14 …
1.下列元素既能组成离子键,又能组成共价键的是:A.H,N,OB.NA,S,OC.H,C,OD.H 2020-07-16 …
急,求解一道化学题:已知:2H2S(g)+SO2(g)===3S(g)+2H2O△H=—QkJ/m 2020-07-23 …
谁能帮我组个英语单词①e、n、o、p、t、w、y②e③d、t、y④b、c、f、m、p、r、t、v⑤ 2020-07-29 …
硫化氢(H2S)分子中,两个H-S键的夹角接近90°,说明H2S分子的空间构型为中心原子轨道杂化类型 2020-11-28 …
英语:下1.将下联打乱的字母组成单词,并写出汉语意思1.a,e,h,g,c,n[]2.e,i,s,t 2020-12-10 …
几个英语单词问题开头是e的倒数第三个是s的一共由六个字母组成末尾是l的第三个字母是h同是六个字母开头 2021-01-26 …