本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
哈希函数是可用于将任意大小的数据映射到固定大小的数据的任何函数。散列函数返回的值称为散列值、散列码、摘要或简称为散列。哈希函数是现代密码学的基本组成部分。它们还广泛用于许多其他需要高效数据查找的应用程序中。
哈希函数是可用于将任意大小的数据映射到固定大小的数据的任何函数。散列函数返回的值称为散列值、散列码、摘要或简称为散列。
哈希函数是现代密码学的基本组成部分。它们还广泛用于许多其他需要高效数据查找的应用程序中。
哈希函数将一段数据作为输入,并产生一个哈希值作为输出。输入数据可以是任意大小,但输出哈希值总是固定大小。
输入数据通常称为消息,输出哈希值通常称为消息摘要或简称为摘要。
密码哈希函数是一种能够抵抗密码攻击的哈希函数。换句话说,很难找到两个不同的数据产生相同的哈希值。
加密散列函数用于数字签名、消息验证代码和其他安全应用程序。
非密码散列函数是不抵抗密码攻击的散列函数。换句话说,很容易找到产生相同散列值的两个不同的数据。
非加密哈希函数用于哈希表和数字内容分发等数据结构中。
哈希函数可以用任何编程语言实现。最常见的哈希函数是用 C 编程语言实现的。
一个好的哈希函数应该具备以下特性:
有两种类型的哈希函数:
哈希函数用于以下应用程序:
哈希表是一种数据结构,用于以键值格式存储数据。键用于索引数据,值是存储的数据。
哈希表用于实现哈希函数。哈希表中的键是输入数据,值是输出哈希值。
哈希表用于许多应用程序,例如数据库和 Web 应用程序。
哈希函数冲突是指两条数据产生相同的哈希值。哈希函数冲突是不可避免的,但应该很少见。
哈希函数冲突可能会导致使用哈希函数的应用程序出现问题,例如哈希表。
有两种方法可以避免哈希函数冲突:
完美哈希函数是将所有输入数据映射到唯一输出哈希值的哈希函数。完美的散列函数是不可能找到的,但可以近似。
散列函数攻击是试图找到产生相同散列值的两段数据。散列函数攻击通常用于查找冲突。
哈希函数攻击可用于查找加密哈希函数中的冲突。这可用于伪造数字签名和冒充其他用户。
散列函数攻击也可用于查找非加密散列函数中的冲突。这可用于引起拒绝服务攻击。
彩虹表是一种用于存储哈希函数冲突结果的数据结构。彩虹表用于加速哈希函数攻击。
哈希函数安全性是对抵抗密码攻击的哈希函数的研究。哈希函数安全是密码学的一个分支。