哈希算法、HD5、SHA-1

哈希函数

  1. 哈希函数(Hash Function),也称为散列函数或杂凑函数。
  2. 哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值、杂凑值或者消息摘要。
  3. 它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。
  4. 无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串。 以比特币使用的Sh256算法为例,无论输入是什么数据文件,输出就是256bit。每个bit就是一位0或者1,256bit就是256个0或者1二进制数字串,用16进制数字表示,每一位16进制数字可以代表4位bit。256位bit用16进制数字表示,等于64位。

理解

例如:
把1569用“加法”加密得到(这里假设’‘加法’‘是我们定的一种哈希算法)

1+5+6+9=21

21就是1569的哈希值,根据哈希值21是很难推出原文是1569的

HD5

MD5算法实现:

输入:不定长度信息(要加密的信息)

输出:固定长度128-bits。由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

基本方式为:求余、取余、调整长度、与链接变量进行循环运算。得出结果。
在这里插入图片描述
具体参考https://blog.csdn.net/u011377996/article/details/86365533

SHA-1

SHA-1 可以对不超过 2 64 2^{64} 264比特的消息进行计算,输入以512位数据块为单位处理,产生160比特的消息摘要作为输出。该算法的处理流程主要分为5个步骤:

步骤 1:对输入的数据进行填充,是的数据位长度对512求余的结果为448。填充比特 串的最高位补一个 1,其余位补0。附加填充总是要进行的,即使消息的长度满足所要求的长度。

步骤 2:将64比特加在报文后表示报文的原始长度,是报文长度为512比特的倍数。

步骤 3:一个160位MD缓存用以保存中间和最终的散列函数的结果。它可以表示为32位寄存器(A,B,C,D,E)。初始化为 A=67452301,B=EFCDAB89,C=98BADCFE, D=10325476,E=C3D2E1F0。前四个是与MD5相同的,但存储为big-endian format,即将高 序字节存储在起始地址。

步骤 4: 以512比特(16个字)分组处理消息。此算法的核心就是称为压缩算法(compression function)的模块。这个模块包括4次循环,每次循环又包含20 个处理步骤。 4次循环具有相似的结构,但每次循环使用不同的基本逻辑函数,称为 f1,f2,f3,f4。

步骤 5:全部L个512位数据块处理完毕后,输出160位消息摘要。

作者:cutoutsy
链接:https://www.jianshu.com/p/96d9f3bbcfdd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值