哈希函数/散列算法

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

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

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

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

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

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

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

2.1、MD算法
MD(Message Digest Algorithm,消息摘要算法)算法是应用非常广泛的一个算法分支,尤其是MD5算法,它由 Ron Rivest(RSA 公司)在 1992年提出,目前被广泛应用于数据完整性校验、数据(消息)摘要、数据签名等很多场景。

MD2算法:它已被弃用,取而代之的是SHA-256和其他强大的散列算法;
MD4算法:虽然安全性已受到严重威胁,但是很多哈希算法如MD、SHA算法等都是基于MD4演进而来;
MD5算法:可以被破解,对于需要高度安全性的使用场景,专家建议改用其他哈希算法;
MD6算法:还未成为标准。

2.2、SHA算法
SHA(Secure Hash Algorithm,安全哈希算法)算法是由美国专门制定密码算法的标准机构(美国国家标准技术研究院NIST)制定的,由于它产生的数据摘要的长度更长、更难以发生碰撞,所以也更为安全,它代表着未来数据摘要算法的发展方向。

SHA-0算法:安全散列算法标准的初版,因安全问题很快就被撤掉的版本;
SHA-1算法:安全散列算法标准的第一版,该算法已经不够安全,不建议继续使用;
SHA-2算法:包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256等;
SHA-3算法:SHA算法分支的最新版本,也是官方推荐使用的安全版本。

2.3、MAC算法
MAC(Message Authentication Code,消息认证码算法)算法是含有加密密钥的散列算法,它在MD和SHA算法特性的基础上加入了加密密钥(参考本在线工具的场景二)。因为MAC算法融合了密钥散列函数(keyed-Hash),通常我们也把MAC算法称为HMAC(Keyed-Hash Message Authentication Code)。

MD版本:例如,HMAC-MD2、HMAC-MD4、HMAC-MD5等;
SHA版本:例如,HMAC-SHA1、HMAC-SHA224、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等。

本教程引自《试试吧 - 领先的在线工具平台》,主打原创,全部免费,打开浏览器搜:试试吧,全网排名第一的就是本站,敬请 收藏和分享,快来试试吧:哈希函数/散列算法 - 在线工具

目录
相关文章
|
4月前
|
算法 机器人 定位技术
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
152 0
|
3月前
|
机器学习/深度学习 传感器 算法
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
163 1
|
4月前
|
机器学习/深度学习 算法 数据挖掘
【配送路径规划】基于螳螂虾算法MShOA求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)研究(Matlab代码实现)
【配送路径规划】基于螳螂虾算法MShOA求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)研究(Matlab代码实现)
187 0
|
4月前
|
算法 Python
【配送路径规划】基于遗传算法求解带时间窗的电动汽车配送路径规划(目标函数:最小成本;约束条件:续驶里程、额定载重量、数量、起始点)研究(Matlab代码实现)
【配送路径规划】基于遗传算法求解带时间窗的电动汽车配送路径规划(目标函数:最小成本;约束条件:续驶里程、额定载重量、数量、起始点)研究(Matlab代码实现)
151 0
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
246 3
|
7月前
|
存储 监控 算法
内网监控桌面与 PHP 哈希算法:从数据追踪到行为审计的技术解析
本文探讨了内网监控桌面系统的技术需求与数据结构选型,重点分析了哈希算法在企业内网安全管理中的应用。通过PHP语言实现的SHA-256算法,可有效支持软件准入控制、数据传输审计及操作日志存证等功能。文章还介绍了性能优化策略(如分块哈希计算和并行处理)与安全增强措施(如盐值强化和动态更新),并展望了哈希算法在图像处理、网络流量分析等领域的扩展应用。最终强调了构建完整内网安全闭环的重要性,为企业数字资产保护提供技术支撑。
235 2
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
277 67
|
算法 安全
散列值使用相同的哈希算法
当使用相同的哈希算法对相同的数据进行散列时,所产生的散列值(也称为哈希值或摘要)总是相同的。这是因为哈希算法是一种确定性的函数,它对于给定的输入将始终产生相同的输出。 例如,如果你用SHA-256算法对字符串"hello world"进行哈希处理,无论何时何地,只要输入是完全一样的字符串,你都会得到相同的160位(40个十六进制字符)的SHA-256散列值。 但是,需要注意的是,即使是输入数据的微小变化也会导致产生的散列值完全不同。此外,不同的哈希算法(如MD5、SHA-1、SHA-256等)会对相同的数据产生不同的散列值。 哈希算法的一个关键特性是它们的“雪崩效应”,即输入中的一点小小
269 4
|
存储 算法 C#
C#哈希查找算法
C#哈希查找算法
136 1
|
算法 安全 JavaScript
安全哈希算法:SHA算法
安全哈希算法:SHA算法
659 1
安全哈希算法:SHA算法

热门文章

最新文章