Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 913

胡椒(Pepper)

审核人Cybersecurity entrepreneur & security researcher

胡椒(Pepper) 是什么?

胡椒(Pepper)服务端持有的一段秘密,在口令哈希之前与每个口令拼接,与数据库分开存储,用于在哈希泄露后缓解离线破解风险。


胡椒(pepper)是一段在应用层面共享的长秘密(通常 32 字节以上),在口令送入哈希函数或 KDF 之前与之拼接,与每用户唯一的盐配合使用。与盐不同,胡椒被存储在凭证数据库之外,如配置文件、环境变量或硬件安全模块(HSM)中;这样即便攻击者只拿到哈希表,也难以在离线状态下高效破解。常见做法是先在应用中计算 HMAC(pepper, password),再将结果送入 Argon2id;或者将胡椒作为秘密材料的一部分输入到 KDF。胡椒是一种纵深防御措施,不能替代强 KDF、盐和速率限制,但能显著提高仅数据库被攻破时的破解成本。

示例

  1. 01

    在应用中计算 HMAC-SHA-256(pepper, password),再用 Argon2id 哈希。

  2. 02

    将 pepper 存储在 HSM 中,使应用无法直接将其导出。

常见问题

胡椒(Pepper) 是什么?

服务端持有的一段秘密,在口令哈希之前与每个口令拼接,与数据库分开存储,用于在哈希泄露后缓解离线破解风险。 它属于网络安全的 密码学 分类。

胡椒(Pepper) 是什么意思?

服务端持有的一段秘密,在口令哈希之前与每个口令拼接,与数据库分开存储,用于在哈希泄露后缓解离线破解风险。

如何防御 胡椒(Pepper)?

针对 胡椒(Pepper) 的防御通常结合技术控制与运营实践,详见上方完整定义。

胡椒(Pepper) 还有哪些其他名称?

常见的别称包括: 服务端密钥, Pepper 秘密。

相关术语