Hash 算法原理和特性

哈希算法将任意长度的输入转化为固定长度的输出,常用于数据校验、密码存储、数字签名等领域。优秀的哈希函数具有单向性、碰撞约束等特性,如MD5和SHA系列。然而,随着技术发展,MD5和SHA1的安全性已受到挑战,推荐使用SHA256以上算法。使用哈希时要注意避免常见误区,如混淆加密与哈希、忽视盐值和中间人攻击。
摘要由CSDN通过智能技术生成

概念:一般翻译做“散列”,就是把任意长度的输入通过散列函数变化成固定长度的输出,该输出就是散列值。
散列的空间通常远远小于输入的空间,不同的输入会散列城相同的输出(散列冲突)。

优秀hash特点:

常见加密hash函数:

-md5 -SHA1/256/512 -HMAC

  • 正向快速
  • 逆向困难
  • 输入敏感(输入一点改动,输出也会不一样)
  • 冲突避免
  • 应用:

    数据结构
    -对于数据空间的组织,散列开来,建立快速映射的关系,往往数据的插查询,插入,删除都比较迅速。接近于O(1)。

    密码学的应用:

  • 用户密码的加密
  • 搜索引擎
  • 版权
  • 数字签名

MD5: 直接加密

不足:不够安全了,可以反查询
加盐: 盐是固定的,写死在程序里面,一旦泄露就不安全了。
解决:加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值