有三项关键性质:抗原像性(给定摘要,找出任意一个输入)、抗第二原像性(给定一个输入,找出摘要相同的另一个输入)和抗碰撞性(找出任意两个发生碰撞的输入)。对于 n 位摘要,通用攻击的成本分别约为 2ⁿ、2ⁿ 和 2ⁿᐟ²,最后一项源于生日悖论,这也是 SHA-256 的抗碰撞强度为 128 位的原因。
标准函数:SHA-2(SHA-224 到 SHA-512,FIPS 180-4)以及 SHA-3 和 SHAKE 可扩展输出函数(FIPS 202)均已获批准;BLAKE2(RFC 7693)在 NIST 体系之外广泛使用;MD5 和 SHA-1 的抗碰撞性已被攻破,在攻击者可以选择输入的场合不得使用。Merkle–Damgård 结构(MD5、SHA-1、SHA-2)存在长度扩展问题;海绵结构(SHA-3)和 HAIFA 结构(BLAKE2)则没有。
哈希不是 MAC,不是密码哈希,也不是加密:需要带密钥的完整性保护时用 HMAC 或 KMAC,保护密码用 Argon2id、scrypt 或 PBKDF2,需要机密性时用 AEAD。量子计算机对哈希几乎没有影响:Grover 算法在求原像时最多带来平方根级的加速,NIST 的过渡计划草案也继续保留 SHA-256 和 SHA-3。