什么是哈希?密码存储与加密、盐值和工作成本如何区分

什么是哈希?密码存储与加密、盐值和工作成本如何区分

Marcus Reid
2026年10月5日· 8 分钟阅读

哈希是把输入转换为摘要的过程;密码哈希则使用专门设计的方案,让服务能够验证密码,而不必保存可直接取回的明文密码。NIST 对 hashing 的定义描述用数学算法生成代表输入数据的值,但不是所有哈希用途都具有相同安全要求。[1] 密码存储需要额外考虑猜测成本、盐值与实现方式。[2]

看到网站写“密码已加密”,不能据此判断存储安全。可逆加密、通用快速哈希与专用密码哈希解决不同任务。下面先解释验证流程,再区分数据库防护与用户账户防护。

关键要点

  • 哈希摘要不是可用解密密钥还原的密文,但仍可能通过猜测输入找到匹配。
  • 密码哈希方案应提高每次猜测的计算成本,不能只使用快速 SHA-256。[2]
  • 每个密码记录的独立盐值不必保密,它用于区分相同输入的记录。
  • pepper 是单独保管的秘密,和盐值的职责不同。
  • 泄露哈希后,原网站的登录限速不能限制攻击者离线猜测。

哈希如何把输入变为摘要?

在相同算法与相同输入下,哈希会给出相同结果。一般数据处理也会使用哈希,例如索引和查找;这种用途不自动具有密码学哈希所需的安全性质。密码学讨论中的摘要、抗碰撞和原像抵抗,不能直接套到任何叫“哈希”的函数上。

有限长度的输出意味着不同输入必然可能对应同一结果。抗碰撞关注找到两份相同摘要的不同输入有多困难;原像抵抗关注给定摘要后寻找对应输入有多困难。两者不是同一个问题,也不能把“理论上有碰撞”解释成所有密码验证立即失效。

“单向性”不代表攻击者不能尝试候选密码。他们可以对一个猜测执行相同验证计算,再比较结果。猜测命中与把摘要解密回原文是不同过程,弱密码仍然可能容易被猜出。

哈希与加密的区别是什么?

加密通常设计为持有适当密钥的一方可以恢复原始数据。哈希用于生成摘要;正常密码验证不需要从数据库取回原密码。仅把可逆加密用于密码存储,会把密钥保护也变成密码泄露的关键边界。

方法常见用途是否设计为恢复原输入主要限制
通用快速哈希数据摘要、完整性相关处理否速度快,不能单独作为密码存储方案
专用密码哈希保存用于密码验证的记录否仍需盐值、合理成本和正确实现
加密在授权条件下恢复保密数据是,依赖密钥密钥与数据的保护决定安全边界

完整性验证也需要可信的参考值;攻击者若能同时替换文件与摘要,仅比较二者不能证明来源。这里的密码存储问题也不同于传输加密。若要理解密钥和可逆数据处理,可参考对称与非对称加密。

密码哈希如何验证一次登录?

注册或更换密码时,服务选择密码哈希方案与工作参数,为记录生成独立盐值,并保存验证结果及必要参数。之后用户输入密码,服务使用该记录的盐值、方案与参数进行计算,比较结果,再根据账户政策完成其它认证步骤。

这个流程解释为什么数据库不需要保存可直接读取的密码。图中的匹配也不代表已经完成所有认证:服务可能仍要求第二因素,或执行其它账户检查。处理秘密时应使用维护良好的库,避免自己设计哈希组合或验证逻辑。

数据库被复制后,攻击者可以在自己的系统上重复计算。原服务的封禁、验证码和请求限速无法限制这些离线尝试。这与暴力破解攻击中的在线猜测边界不同。

盐值、pepper 和工作成本分别改变什么?

加盐密码哈希为什么需要独立盐值?

独立盐值让相同密码在不同记录中产生不同验证结果,使攻击者不能简单把一份预计算结果套用到所有用户。盐值通常与哈希结果一起保存,不是需要用户记住的第二个密码。

盐值不会把一个容易猜测的密码变成高熵秘密,也不保证攻击者永远猜不中。它的作用是区分记录、限制结果复用;密码方案的猜测成本和用户密码本身仍然重要。

pepper 为什么必须单独保存?

pepper 是密码处理方案中的额外秘密,应与保存哈希的数据库分开保护。数据库单独泄露时,它可能提供额外边界,但前提是秘密并未同时泄露。把同一个常量写在公开代码或随数据库保存,不会实现预期的隔离。

pepper 的使用、访问与轮换需要服务方明确设计。更换它可能影响已有密码记录的验证与迁移,不能把“定期换一下”当成无成本操作。用户不应被要求把服务端秘密当作自己的恢复资料。

工作成本如何影响每次猜测?

专用密码哈希可通过计算量和内存需求增加每次验证的成本。合理成本应结合部署资源与正常登录负载评估,而不是无限提高到无法服务合法用户。[2]

高成本也不能替代请求限速、凭据保护或安全实现。服务方需要考虑容量与滥用风险,同时保留参数以支持以后迁移。用户仅看到算法名称,通常无法判断实际成本、实现或运行环境是否合理。

哪些方案适合密码存储?

OWASP 密码存储指南讨论 Argon2id、scrypt、bcrypt 与 PBKDF2 等方案,以及不同环境下的条件。[2] 它们不是可随意替换的标签;新方案选择、遗留系统和特定要求需要分别评估,不应在脱离环境后给出万能配置。

SHA-256 是通用快速密码学哈希。把密码直接执行一次 SHA-256 并保存结果,不等于采用了合理的专用密码哈希方案。多加一个盐值也不能自动解决计算太快的问题。

“采用军用加密”“密码已加密”等宣传语并不展示验证参数、秘密隔离或实现质量。对用户而言,选择独立密码、保护恢复入口仍是可控制的动作。密码管理器安全性可以帮助理解保存与生成个人密码的另一层职责。

密码哈希泄露对用户意味着什么?

哈希泄露不是明文泄露的同义词,却也不能被当成没有风险。攻击者能进行离线猜测,结果取决于密码强度、存储方案、参数、可用资源及泄露材料。[3] 不应给所有密码套用同一张“破解耗时表”。

从独立官方入口确认事件通知,按服务方指导更换受影响密码,并更换其它账户重复使用的密码。检查会话、恢复方式与异常账户变更。不要把真实密码输入来历不明的哈希检测网站来证明安全。

传输保护与存储职责不同。VPN 密码安全解释了账户凭据和网络路径的分工:隧道不会使网站数据库的弱密码哈希更难猜。Passkey 等认证方式也不取消会话安全和恢复入口的风险。整体关系可参考数字隐私指南。

开发者和用户应如何分担责任?

服务方负责选择合适方案、正确实现验证、管理参数和秘密、限制在线尝试,并在泄露后提供可信通知与恢复路径。迁移旧方案可能采用受控重置或在适当登录时重新计算记录,具体策略取决于系统约束。

用户负责为不同服务使用不同密码,保护邮箱及恢复方式,并对事件通知采取行动。不能因为某个网站声称使用安全哈希,就在所有网站重复同一个密码。

检查日志、调试记录和支持资料时,不应保留明文密码、完整秘密或可用于冒充用户的材料。算法选择只是安全链中的一部分,正确的存储方案也不能补偿秘密在其它地方被直接记录。

组织应在事件发生前明确系统负责人和恢复流程。通知受影响用户时,应说明需要采取的动作,不公开数据库样本或秘密,也不要在没有证据时宣称所有账户都已被访问。工作参数应随着硬件和指导建议的变化重新评估,在实测运行预算内调整,而不是长期保留薄弱设置。

总结

  • 哈希、密码哈希与可逆加密解决不同问题。
  • 独立盐值、合理工作成本和正确实现共同支撑密码验证。
  • pepper 是单独保护的秘密,不能与盐值混为一谈。
  • 数据库泄露后要处理离线猜测与密码复用风险,网络隧道不替代存储防护。

常见问题

哈希可以解密吗?

密码学哈希没有通常意义上的密钥解密操作,但攻击者仍可猜测输入并比较结果。因此可预测的密码仍可能被找到,不能把单向性理解为所有密码都永远安全。

哈希与加密相同吗?

不同。加密允许持有密钥的一方恢复数据,密码哈希用于比较候选。选择取决于应用要恢复原数据,还是只验证输入秘密,而不是选一个熟悉的算法名称。

盐值需要保密吗?

盐值通常随验证记录保存,以便服务重复计算。它的用途是区分记录,不是提供秘密;单独管理的 pepper 对应另一种保护要求,不能把两者混为一谈。

为什么不能只用 SHA-256 保存密码?

SHA-256 在适合的密码学任务中设计为快速计算。密码存储通常需要刻意增加成本的方案,一次快速摘要不能等同现代密码哈希,盐值也不单独解决计算过快。

良好哈希能让弱密码安全吗?

它提高每次猜测成本,却不消除可预测性。常见或重复使用的秘密仍可能脆弱,尤其在攻击者能对复制验证记录离线计算时;用户密码选择仍然重要。

相同密码哈希证明密码相同吗?

判断需要知道方案、参数和盐值。相同密码配合不同盐值应产生不同记录,所以单独比较不透明记录并不是可靠的账户调查方法,也不能忽略实际实现条件。

哈希数据库泄露后需要行动吗?

需要按可信官方通知替换受影响秘密,检查重复使用的密码和账户活动。不能仅因通知说密码已哈希就忽略事件,也不要向外部检测网站发送原密码。

VPN 能保护存储密码的数据库吗?

VPN 保护配置的流量路径,不决定服务方数据库的存储设计。认证、密码复用及恢复控制,应与传输加密分别评估,隧道不会增强弱存储验证值。

来源

Sources checked 2026 年 10 月 5 日。

  1. NIST CSRC — Hashing — https://csrc.nist.gov/glossary/term/hashing
  2. OWASP — Password Storage Cheat Sheet — https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html
  3. NIST — Digital Identity Guidelines: Authentication and Authenticator Management — https://pages.nist.gov/800-63-4/sp800-63b.html

延伸阅读:

开启 3 天免费试用

注册即可免费体验全部高级功能。

*仅限新用户;每位用户只能获得一次试用。

什么是哈希?密码存储与加密、盐值和工作成本如何区分 | AethoVPN