c语言实验杂凑算法SHA-1,SHA-1加密算法

SHA-1加密算法在加密学中扮演着极其重要的角色,可以用于实现数据保密、防止数据更改和身份验证等功能。另外,SHA-1加密算法是当今众多流行加密思想核心,几乎无处不在。它在许多安全协议中广为使用。那么,我们今天就给大家来介绍一下SHA-1加密算法。

SHA-1加密算法的原理

一、 函数与常量定义

1、 SHA-1加密算法的迭代函数

SHA-1加密算法使用80个连续的逻辑函数f0,f1,... ,f79。每个函数Ft(0≤t≤79)都操作三个32位字(B,C,D),产生一个32位字作为输出。函数Ft(B,C,D)定义如下:

(1)、 SHA-1加密算法常量

SHA-1加密算法一共需要80个32位的常量(K0,K1,...K79),以16进制给出,它们如下所示:

(1)Kt=0x5A827999 _(0≤t≤19)

(2)Kt=0x6ED9EBA1 _(20≤t≤39)

(3)Kt=0x8F1BBCDC _(40≤t≤59)

(4)Kt=0xCA62C1D6 _(60≤t≤79)

2、预处理

在进行散列值计算之前,先要对需要加密的数据进行预处理。这一预处理由三部分组成:消息填充、分割已填充消息(将填充后的消息等分成m位处理块)、为散列值计算设置初始化值。

(1)消息填充

假设原始消息(M)的长度是L位。首先,在消息最后加一位“1”,接着在这位“1”后面补k个“0”,使得L+1+k(即补位后的消息长度)满足对512取模后余数是448。然后,添加最后的64位二进制数据,这64位二进制数据就是原始L位消息(M)长度的二进制表示。例如,在8位ASCII码系统中,消息“abc”长度为

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值