哈希函数/散列算法

本文介绍了哈希函数的概念、特点及哈希碰撞,详细阐述了MD、SHA和MAC算法的应用,包括MD5、SHA-1到SHA-3的安全性分析,以及HMAC在消息认证中的作用。
摘要由CSDN通过智能技术生成

一、哈希函数/散列算法文档

1.1、哈希函数介绍

哈希函数(Hash function),又称散列函数、散列算法,它是一种不可逆的信息摘要算法,具体实现就是把任意长度的输入信息通过哈希算法变成固定长度的输出信息。

1.2、哈希碰撞与输入输出

哈希碰撞:由于Hash是无限集合的数据向有限集合的数据进行单方向映射,所以难免会出现,对不同的数据可能得到相同的哈希值,这种现象称为哈希碰撞。因为哈希碰撞无法避免,所以要尽量降低这种碰撞成功的概率,以下为哈希值输入输出的两种情况:

  • 输入数据相同,则输出的结果值相同;
  • 输入数据不同,则有小概率输出的结果值相同。

1.3、哈希函数的特点

哈希函数没有特定的公式,一般只要符合散列算法的要求即可,只要符合散列算法的要求都可以称之为哈希算法,以下为哈希函数的主要特点:

  • 无论输入的消息有多长,计算出来的哈希值总是固定的;
  • 哈希计算的输出结果必须是随机和没有规律的;
  • 哈希函数必须是不可逆的单向函数,无法从输出的哈希值中推算出输入信息。

二、哈希函数的具体应用

一般相关的系统或组件都会自带哈希函数,我们可以使用其提供的HASH函数或HMAC函数对文本进行相关处理。通常情况下,不同的需求使用不同安全系数的散列算法,常见的安全哈希算法分类为:MD算法、SHA算法、MAC算法。

2.1、MD算法

MD(Message Digest Algorithm,消息摘要算法ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值