美文网首页
20_单向散列函数

20_单向散列函数

作者: 伶俐ll | 来源:发表于2020-08-17 14:14 被阅读0次
    基本概念
    • 单向散列函数,又称哈希函数/消息摘要函数/杂凑函数。
    • 输出的散列值也被称为消息摘要(Message Diges,MD)/指纹(Fingerprint)
    • 输入的消息又称原像(pre-image)
    单向散列函数的特点
    • 计算速度快,能快速计算出散列值
    • 散列值的长度和消息的长度无关,根据任意长度的消息,计算出固定长度的散列值
    • 消息不同,散列值也不同
    • 具备单向性,无法通过散列值反推出消息的性质

    补充一个概念:

    抗碰撞性

    无法随机找到两条不同的消息,使得他们的散列值相同

    • 弱抗碰撞性:给定某个散列值,找到具有相同散列值的另一条消息非常困难
    • 强抗碰撞性:找到散列值相同的两条的不同消息非常困难

    单项散列函数必须同时具备这两者特征,常用来表示这个单项散列函数目前是否安全。

    常见的几种单向散列函数
    • MD4、MD5
      产生128bit的散列值,MD就是Message Digest的缩写,目前强抗碰撞性已被攻破,已经不安全。
      Mac终端上默认可以使用md5命令。

    • SHA-1
      产生160bit的散列值,目前强抗碰撞性已被攻破,已经不安全。

    • SHA-2
      SHA-256、SHA-384、SHA-512,散列值长度分别是256bit、384bit、512bit。目前尚未被攻破。

    • SHA-3
      区别于SHA-1,SHA-2的全新标准全新标准。

    • RIPEMD-160
      RIPEMD-160是欧盟所设计的RIPEMD的修订版,散列值为160比特。RIPEMD已经被攻破,RIPEMD-160还未被攻破。

    用途
    • 用来解决判断发送的数据是否被篡改。无法解决伪装性!(是否是某人发的)。


      Snip20200918_34.png
    • 口令加密:最简单的场景就是服务器存储口令的散列值(口令可以理解为日常用的密码),只有用户输入的时候是密文,后面全部以散列值处理存储。


      Snip20200918_35.png
    • 数字签名

    相关文章

      网友评论

          本文标题:20_单向散列函数

          本文链接:https://www.haomeiwen.com/subject/zqafjktx.html