哈希集合哈希图和哈希表的区别

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

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加密密钥(参考本在线工具的场景2)是基于算法特性的。因为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等。

本教程引自试试吧 – 领先的在线工具平台,以原创为主,全部免费,打开浏览器搜索:试试,本网站排名第一,请 收藏和分享,来试试吧:https://try8.cn。

今天的文章就分享到这里,如果你也网赚副业项目感兴趣,可以添加 维信:beng6655  备注:副业

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 526323532@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.haoxue2.com/2059.html