MD5算法笔记

MD5算法

1.基础知识

1992年首次提出

摘要长度:128bit

任意长度的信息输入,MD5都将产生一个长度为128比特的输出

块大小:512bit(64字节)

每次以512位的分组来处理

轮计算:4(16 step)

共4轮计算,每轮计算16步,一共64步

2.md5算法原理

第一步:填充(Padding)

在这里插入图片描述

MD5算法是对输入的数据进行补位,使得如 果数据位长度lEN对512求余的结果是448,则数据扩展至
K×512+448位,即K×64+56个字节,K为整数。

黄色部分:消息

蓝色部分:10000000…0

绿色部分:原消息长度(共64位)512-448=64

要求:总长度为512bit的倍数

第二步:state(初始化MD5内部状态)

在这里插入图片描述

A,B,C,D分别位32位的寄存器,初始化使用的是十六进制表示的数字

在这里插入图片描述

第三步:四轮循环运算

将上面四个链接变量复制到另外四个变量中:A到a,B 到b,C到c,D到d。

四个轮函数:
在这里插入图片描述

可以借助这个图来理解

首先,B,C,D通过F(B,C,D)计算,计算结果与A相加

然后,再与Mi, ti相加,之后循环左移w位,再次和B相加

最后,对调DABC赋值给ABCD。

image-20220911124000976

Mj表示消息的第j个子分组(0到15),每一个大小位32位,共32*16 = 512位

ti可以如下选择:在第i步中,ti是4294967296* abs(sin(i))的整数部分,i的单位是弧度,。(4294967296等于2的32次方),
F F ( a , b , c , d , M j , w , t i ) 表示 a = b + ( ( a + F ( b , c , d ) + M i + t i ) < < < w ) FF(a,b,c,d,Mj,w,ti)表示 a = b +((a+F(b,c,d)+Mi+ti)<<<w) FF(a,b,c,d,Mj,w,ti)表示a=b+((a+F(b,c,d)+Mi+ti)<<<w)

G G ( a , b , c , d , M j , w , t i ) 表示 a = b + ( ( a + G ( b , c , d ) + M i + t i ) < < < w ) GG(a,b,c,d,Mj,w,ti)表示 a = b +((a+G(b,c,d)+Mi+ti)<<<w) GG(a,b,c,d,Mj,w,ti)表示a=b+((a+G(b,c,d)+Mi+ti)<<<w)

H H ( a , b , c , d , M j , w , t i ) 表示 a = b + ( ( a + H ( b , c , d ) + M i + t i ) < < < w ) HH(a,b,c,d,Mj,w,ti)表示 a = b +((a+H(b,c,d)+Mi+ti)<<<w) HH(a,b,c,d,Mj,w,ti)表示a=b+((a+H(b,c,d)+Mi+ti)<<<w)

I I ( a , b , c , d , M j , w , t i ) 表示 a = b + ( ( a + I ( b , c , d ) + M i + t i ) < < < w ) II(a,b,c,d,Mj,w,ti)表示 a = b +((a+I(b,c,d)+Mi+ti)<<<w) II(a,b,c,d,Mj,w,ti)表示a=b+((a+I(b,c,d)+Mi+ti)<<<w)

每一轮用一个函数,每一轮16步。一共四轮,共64步
在这里插入图片描述
在这里插入图片描述

第四步:拼接

每轮循环后,将A,B,C,D分别加上a,b,c,d。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TzeHong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值