crypto之hash算法

主要思想

能将任意长度的二进制明文映射为较短的二进制串的算法,并且不同的明文很难映射为相同的hash值。

相当于空间映射函数,从一个非常大的取值空间映射到一个非常小的取值空间,[李宵宵1] 由于不是一对一的映射,hash函数转换后不可逆,即不能通过逆操作还原出原始的值。

算法主要思想:根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(成为hash函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将节点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里取值。通过hash方法可以对节点进行快速检索。

特点:

Hash值又称为指纹或者摘要,具有以下特点:

正向快速:给定明文和hash算法,在有限时间和有限资源内能计算得到hash值

逆向困难:给定hash值,在有限时间内很难逆推出明文

输入敏感:原始输入信息发生任何变化,新的hash值都应该出现很大变化

冲突避免:很难找到两段不同的明文,使得它们的hash值一致

常见的hash算法

Hash算法有MD5和SHA系列,目前MD5和SHA1已经被破解,一般推荐至少使用SHA2-256算法

  1. MD4MD4RFC 1320)是 MIT Ronald L. Rivest 1990 年设计的,MD Message Digest 的缩写。它适用在32位字长的处理器上用高速软件实现--它是基于 32 位操作数的位操作来实现的
  2. MD5MD5RFC 1321)是 Rivest 1991年对MD4的改进版本。它对输入仍以512位分组,其输出是432位字的级联,与 MD4 相同。MD5MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好
  3. SHA-1及其他SHA1是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。

应用场景

1. 数据加密:HASH算法常用于对数据进行加密,保护数据的安全性和完整性。

2. 数字签名:HASH算法可以用于生成数字签名,用于验证数据的来源和完整性。

3. 数据校验:HASH算法可以用于验证数据的完整性,例如在文件传输过程中对文件进行HASH校验,以确保文件在传输过程中没有被篡改。

4. 密码存储:HASH算法可以用于存储用户密码的安全性,将用户密码进行HASH加密后存储在数据库中,以防止密码泄露。

5. 数据指纹:HASH算法可以用于生成数据的指纹,用于快速比较数据的差异和重复性,例如在数据去重、数据比对等场景中应用广泛。

6. 安全认证:HASH算法可以用于生成安全认证令牌,用于验证用户的身份和权限。


 [李宵宵1]多对一?如何保证唯一性?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值