Skip to content
TopicTracker
来自 HackerNews查看原文
译文语言译文语言

哈希函数

本文介绍了哈希函数的基本概念及其在计算机科学中的广泛应用,包括数据存储、查找和加密等领域。文章详细讨论了多种常见的哈希算法,如CRC、MD5和SHA系列,并分析了它们的性能特点和碰撞处理策略。此外,还提供了不同哈希函数的实际代码示例和性能比较数据,帮助读者根据具体应用场景选择合适的哈希算法。

背景速读

- 这篇文章来自约克大学计算机科学系一位教授的个人主页,介绍了几种常见的哈希函数(hash functions),包括所谓的"Bernstein哈希"(djb2)和"ELH"(Unix系统的密码哈希函数)。 - 哈希函数是一种把任意长度的输入数据(如字符串)转换成固定长度输出(哈希值)的算法。常用于哈希表(hash table)这种数据结构,实现键值对的快速存取。 - 文中给出的djb2函数非常著名,由前CDB数据库和qmail作者丹·伯恩斯坦(Dan Bernstein, 简称djb)设计,代码极其简短却分布很均匀,至今被许多项目沿用。 - 作者也讨论了最简单的"朴素"哈希(将每个字符的ASCII码累加)为什么不好——碰撞(collision,不同输入得到相同哈希值)太多,影响哈希表性能。

相关报道