加密散列算法——SHA-1

与MD5算法类似,SHA-1算法也是在接收到消息后产生消息摘要,可以用来验证数据的完整性。不同的是SHA1会产生一个160位的消息摘要(MD5产生的是128位)。

其他的性质之类的不多说(请参考前面MD5算法),直接上SHA-1算法的步骤

1、补位
首先要进行补位,使得补位后信息的长度对512求余为448。即数据扩展至
K*512+448(bit),即K*64+56(byte),K为自然数。具体补位操作:先补一个1,后面补0至满足上述要求。最少要补1bit,最多补512bit。

2、补长度
在K*64+56(byte)的基础上补上8byte,这8byte是用来保存原始信息的长度。

3、使用的常量
一系列的常量字K(0), K(1), ... , K(79),如果以16进制给出。它们如下:
Kt = 0x5A827999  (0 <= t <= 19)
Kt = 0x6ED9EBA1 (20 <= t <= 39)
Kt = 0x8F1BBCDC (40 <= t <= 59)
Kt = 0xCA62C1D6 (60 <= t <= 79)

初始化缓冲常量

H0 = 67452301
H1 = EFCDAB89
H2 = 98BADCFE
H3 = 10325476
H4 = C3D2E1F0


4、辅助函数与加密函数
首先定义4个辅助函数:
(

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值