散列功能

你可以使用散列函数对数据进行编码,将输入转化为散列代码或散列值。 哈希算法的设计目的是尽量减少两个输入具有相同哈希值(称为碰撞)的机会。

您可以使用散列函数来加快数据记录的检索速度(简单的单向查询)、验证数据(使用校验和)以及执行加密。 在查找时,哈希代码被用作哈希表的索引,该表包含指向数据记录的指针。 对于校验和来说,在存储或传输数据之前先计算哈希码,之后再重新计算,以验证数据的完整性;如果哈希码不匹配,则说明数据已损坏。 加密哈希函数用于数据安全。

散列函数的一些常见用例包括以下几种:
  • 检测重复记录。 由于重复记录的散列键散列到散列表中的同一个 "桶",因此这项任务只需扫描有两条以上记录的桶即可。 这种方法比对文件中的每条记录进行排序和比较要快得多。 此外,您还可以使用散列技术来查找相似记录:由于相似键散列到连续的数据桶中,因此搜索相似记录的范围仅限于这些数据桶。
  • 定位相互靠近的点。 将散列函数应用于空间数据,可有效地将建模空间划分为网格。 与前面的例子一样,由于只需搜索网格中的连续单元格,因此检索和比较时间大大缩短。 这种技术同样适用于其他类型的空间数据,如形状和图像。
  • 验证信息完整性 信息摘要的哈希值在传输前和传输后都会产生,通过比较两个哈希值来确定信息是否被破坏。
  • 验证密码 在身份验证过程中,用户的登录凭证会被散列,然后将该值与为该用户存储的散列密码进行比较。