彻底搞懂HTTPS(3)——什么是哈希函数?

什么是Hash函数

在这里插入图片描述

  1. 单向
    原始消息可以通过Hash函数得到数字指纹,但是反推是不成立的。
  2. 压缩
    原始消息很长,可以将大的消息压缩成小的消息。
  3. 定长
    通过Hash函数得到的结果都是512位的比特串
  4. 碰撞/冲突
    两个不一样的消息,通过Hash函数得到的Hash值是一样的,此时就产生了碰撞。碰撞是不可避免的,我们要做的是尽可能减少碰撞情况的发生。
  5. 高灵敏
    类似于“四两拨千斤”,“蝴蝶效应”的现象,原始值改动一点点,Hash值会产生翻天覆地的变化。

Hash函数的用途

在这里插入图片描述

  • 完整性检测
    可以通过校验的办法来校验文件是否是原来的文件,文件是否被修改过。Hash函数加上key可以放数据篡改。
  • 登录验证,校对密码
    在登录网站的过程中,用户名的密码是不能直接存在数据库的,不能以明文的形式进行存储。在做Hash函数操作的时候加salt,数据库中存储密码加salt之后的Hash值和salt的值,加了一层的保障。Hash算法是很快的加密算法。加密算法的快慢排序:Hash > 对称加密 > 非对称加密。
    在这里插入图片描述

常见的Hash算法

在这里插入图片描述

MD5和SHA-1已经被证明不安全,现在用的比较多的是SHA-2。

MAC和HMAC

MAC(MessageAuthCode)消息验证码。是为了检查传输的消息有无损坏和篡改。
HMAC(Hash based MAC)基于Hash的消息验证码。
在这里插入图片描述
TLS 1.3之前是先计算MAC在进行Encrpt,TLS 1.3之后是可以进行自定义的。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值