哈希表的工作原理是什么?
哈希表的工作原理是什么?
哈希表的工作原理可以用这样一个直观的例子来说明:
字典中收录了大量汉字的信息。为了便于快速找到某个字,可以首先创建一个按照每个字的拼音字母顺序排列的表(也就是字典开头部分的“拼音检字表”),这就类似于在每个字和拼音字母之间建立了一种函数关系。要查找某个字时,只需在这个表中依次定位首字母、第二个字母、第三个字母…… 以此类推,大部分时候甚至不需要完整查找该字拼音的每个字母,就能确定这个字在字典中对应的准确位置。
在上述例子中,“查找拼音的第n的字母”就是哈希函数的函数法则,而“拼音检字表”就可以理解为一种哈希表(或散列表)。
常用的哈希算法有哪些?

MD4
MD4 是一种信息摘要(Message Digest)算法。由于原始信息中的内容哪怕出现一个比特的改变,也会让哈希值产生巨大的变化,因此这类算法通常会被用于测试信息完整性。通过该算法计算而来的摘要长度为 128 位,但通常会被表示为 32 位十六进制数字。

MD5
MD5 是 MD4 的改进版算法,该算法同样可以产生 128 位的哈希值,和 MD4 一样可以用命来测试信息的完整性和一致性。MD5 算法的安全性优于 MD4,但 2004 年,有专家证实 MD5 无法防止“碰撞攻击”,因此对于安全性要求更高的场景,往往建议使用其他算法。

SHA-1
SHA-1(Secure Hash Algorithm 1 ,安全哈希算法 1)是一种密码哈希函数,可生成 160 位的消息摘要(哈希值),通常的呈现形式为 40 个十六进制数。但同样由于安全问题 ,业界已逐渐不再使用该算法,甚至几乎所有主流的浏览器在多年前就已不再接受使用 SHA-1算法的 SSL 安全证书。业界已经逐渐转为使用更安全的 SHA-2 甚至 SHA-3 算法。

SHA-2
作为 SHA-1 算法的继任者,SHA-2 还可进一步细分为 SHA-256、SHA-512 等不同标准,其名称末尾的三位数字代表算法生成的消息摘要的长度(以比特为单位)。简单来说,消息摘要越长,抗穷举能力就越强,安全性也就越高。
常用的哈希算法有哪些?

MD4
MD4 是一种信息摘要(Message Digest)算法。由于原始信息中的内容哪怕出现一个比特的改变,也会让哈希值产生巨大的变化,因此这类算法通常会被用于测试信息完整性。通过该算法计算而来的摘要长度为 128 位,但通常会被表示为 32 位十六进制数字。

MD5
MD5 是 MD4 的改进版算法,该算法同样可以产生 128 位的哈希值,和 MD4 一样可以用命来测试信息的完整性和一致性。MD5 算法的安全性优于 MD4,但 2004 年,有专家证实 MD5 无法防止“碰撞攻击”,因此对于安全性要求更高的场景,往往建议使用其他算法。

SHA-1
SHA-1(Secure Hash Algorithm 1 ,安全哈希算法 1)是一种密码哈希函数,可生成 160 位的消息摘要(哈希值),通常的呈现形式为 40 个十六进制数。但同样由于安全问题 ,业界已逐渐不再使用该算法,甚至几乎所有主流的浏览器在多年前就已不再接受使用 SHA-1算法的 SSL 安全证书。业界已经逐渐转为使用更安全的 SHA-2 甚至 SHA-3 算法。

SHA-2
作为 SHA-1 算法的继任者,SHA-2 还可进一步细分为 SHA-256、SHA-512 等不同标准,其名称末尾的三位数字代表算法生成的消息摘要的长度(以比特为单位)。简单来说,消息摘要越长,抗穷举能力就越强,安全性也就越高。
了解亚马逊云科技相关资讯
了解亚马逊云科技相关资讯
如何部署托管环境以便节约成本
大多数情况下,高达九成的机器学习应用开发与运行开支源自推理阶段;换句话说,我们需要一套性能强大、经济高效的机器学习推理基础设施。之所以存在如此明确的区分,是因为构建与训练作业在执行频繁方面相对更低,您只需要在构建与训练期间支付成本;但端点实例却一直在运行,意味着推理设施将持续产生运营成本。因此,能否选择正确的托管方式与实例类型将对机器学习项目的总体成本产生决定性的影响。
略谈典型的本地存储模式
典型的本地存储模式包括光纤通道 FC SAN 存储、iSCSI SAN 存储、网络附加存储(NAS)以及对象存储。本节将简要介绍不同的本地数据存储技术,并分析客户在满足应用程序和用户数据的存储需求时所创建的工作负载模式。
进行 Amazon Redshift 企业级数据仓库表设计的初步规划
Amazon Redshift 的表设计与 OLTP 的表设计有很大区别,Amazon Redshift 需要面对海量数据集和极其复杂的分析查询,如果设计不当,大规模并行处理就会受到数据分配不均和数据移动的影响,从而大大影响性能,本文希望能为读者理清 Amazon Redshift 表设计的一些基本原则,分享一些最佳实践,让读者能最大限度地发挥 Amazon Redshift 的潜力。
如何把图片上的文字转换成文字 ——Amazon Web Services 轻松做到
本文介绍了如何在 Amazon Lex 中创建一款会话式聊天机器人,使用 Amazon Textract 从图像或 PDF 文档中提取文本,使用 Amazon Comprehend 从文本中提取洞见,并通过机器人实现与洞见的交互。
如何部署托管环境以便节约成本
大多数情况下,高达九成的机器学习应用开发与运行开支源自推理阶段;换句话说,我们需要一套性能强大、经济高效的机器学习推理基础设施。之所以存在如此明确的区分,是因为构建与训练作业在执行频繁方面相对更低,您只需要在构建与训练期间支付成本;但端点实例却一直在运行,意味着推理设施将持续产生运营成本。因此,能否选择正确的托管方式与实例类型将对机器学习项目的总体成本产生决定性的影响。
略谈典型的本地存储模式
典型的本地存储模式包括光纤通道 FC SAN 存储、iSCSI SAN 存储、网络附加存储(NAS)以及对象存储。本节将简要介绍不同的本地数据存储技术,并分析客户在满足应用程序和用户数据的存储需求时所创建的工作负载模式。
进行 Amazon Redshift 企业级数据仓库表设计的初步规划
Amazon Redshift 的表设计与 OLTP 的表设计有很大区别,Amazon Redshift 需要面对海量数据集和极其复杂的分析查询,如果设计不当,大规模并行处理就会受到数据分配不均和数据移动的影响,从而大大影响性能,本文希望能为读者理清 Amazon Redshift 表设计的一些基本原则,分享一些最佳实践,让读者能最大限度地发挥 Amazon Redshift 的潜力。
如何把图片上的文字转换成文字 ——Amazon Web Services 轻松做到
本文介绍了如何在 Amazon Lex 中创建一款会话式聊天机器人,使用 Amazon Textract 从图像或 PDF 文档中提取文本,使用 Amazon Comprehend 从文本中提取洞见,并通过机器人实现与洞见的交互。
亚马逊云科技相关产品
亚马逊云科技相关产品

Amazon Certificate Manager - SSL/TLS 证书
轻松预置、管理和部署公有 SSL/TLS 证书,以便用于 亚马逊云科技 服务和您的内部互联资源
新用户注册,可免费体验 12 个月