哈希函数

哈希函数是一种函数,它接受可变长度的输入,并生成固定长度的输出,也称为摘要(或简称“哈希”)。哈希函数应该计算速度快,并且不同的输入应尽可能产生不同的输出(这称为抗碰撞性)。

哈希函数既有加密用途,也有非加密用途。例如,在密码学之外,哈希函数可以用于为关联数组(如映射或字典)生成键。

SubtleCrypto 接口的 digest() 函数为 Web 应用程序提供了各种哈希函数。

密码哈希函数

在密码学中,哈希函数有许多应用,包括数字签名消息认证码

并非所有哈希函数都适用于密码学。要用于密码学,哈希函数必须满足以下条件:

  • 计算速度快
  • 单向性:给定输出,重新生成原始输入应该是不切实际或不可能的
  • 防篡改:对输入进行任何更改都会导致不同的输出
  • 抗碰撞性:找到两个不同的输入生成相同输出应该是不切实际的

密码学中最常用的哈希函数是来自 SHA-2(安全哈希算法 2)家族,其名称是 "SHA-" 后跟输出摘要的比特长度:例如,"SHA-256""SHA-512"

SHA-2 是 SHA-1 算法的继任者,SHA-1 算法不再被认为是安全的,不应在密码学中使用。请注意,MD5 算法也被认为是不安全的。

另见