zoukankan      html  css  js  c++  java
  • 加密第二节_散列算法

    加密第二节_散列算法

    本节内容

    1. 散列函数(HASH函数)
    2. HMAC技术(哈希信息认证代码技术)

    散列函数(HASH函数)

    主流的散列算法有MD5和SHA-1,其主要任务是验证数据的完整性,通过散列函数计算得到的结果叫做散列值,该散列值通常被称为数据的指纹

    散列算法特点

    1. 固定大小:散列函数可以接收任意大小数据,并输出固定大小散列值,MD5得到的散列值大小是128bit,SHA-1得到的散列值大小是160bit
    2. 雪崩效应:原始数据只要修改,计算得到的散列值将会发生巨大变化
    3. 单向:只可能从原始数据计算得到散列值,不可能从散列值恢复数据
    4. 冲突避免:几乎不能找到另外一个数据和当前数据计算的散列值相同,因此散列函数能确保数据的唯一性

    散列算法用途:

    • 认证;
    • 使用数字签名保障数据与文档的完整性;
    • IPSec和路由协议的验证

    HMAC技术(哈希信息认证代码技术)

    • 增加一个KEY一同做HASH;
    • 需要双方预先知道这个KEY;
    • 在保障完整性的基础上实现了源认证;
    • 消除了HASH易受中间人攻击的问题;基于存在的HASH函数;

    举例:
    OSPF的认证,路由器1使用明文和KEY一同做散列,得到散列值,再将该散列值和明文一同发给路由器2,路由器2将明文和相同的KEY做散列运算,得到散列值,进行对比,实现源认证和信息的完整性。

    MD5:

    • 广泛使用的HASH算法;
    • 单向;
    • 冲突避免;
    • 128bit固定输出;
    • 不建议在新的运用中使用;
    • SHA-1和SHA-2提供了更高的安全性

    HASH/HMAC使用指南:
    避免使用MD5,使用更加安全的SHA-1和SHA-2,从性能考虑可以使用MD5,保护用于HMAC的预共享密钥。

  • 相关阅读:
    SpringCloud项目中使用Nacos作为配置中心
    SpringCloud项目中使用Nacos作为注册中心
    idea创建maven多模块Spring Boot项目
    Java代码中对IP进行白名单验证
    idea配置jdk
    win10配置jdk1.8环境变量
    shell 提示符样式设置
    整数转换成中文读法的字符串
    比较三段式软件版本号大小
    Windows7安装 nginx+php 后访问.php文件出现 “No input file specified.” 的解决办法
  • 原文地址:https://www.cnblogs.com/huxianglin/p/6386517.html
Copyright © 2011-2022 走看看