SHA-1实现

SHA-1可将任意长度(小于2的64次方)的明文散列成固定的160位。这里分成三部分来实现SHA-1是如何操作的

一、消息填充

对明文进行填充,得到固定512位(或512的倍数),因为SHA-1是分组操作的,每一组512位。这篇文章以一组512位为例,不考虑很长。

填充方法:

1. 在明文后面先填充一个字节 1000 0000

2. 然后一直填充0,注意后面要空出64位

3. 最后64位填充的是明文的长度

举个例子:假设明文是 “abc” 因为 ‘a’ = 97, ‘b’ = '98', c = '99', 所以最开始的序列是:

01100001   01100010   01100011

1. 在明文后面先填充 1000 0000 ,  那么序列就变成了 

01100001   01100010   01100011   1000 0000

2. 然后一直填充0, 最后空出64位,所以这一步结束后一共有512-64=448位,如下所示,一行32位,共14行,满足32*14=448

01100001   01100010   01100011   10000000
00000000   00000000   00000000   00000000 
00000000   00000000   00000000   00000000 
00000000   00000000   00000000   00000000 
00000000   00000000   00000000   00000000
00000000   00000000   00000000   00000000
00000000   00000000   00000000   
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值