You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何验证对称密钥有效性?无明文与密码存储的验证方案问询

最简实现方案

核心思路是结合密码派生函数(KDF)和对称加密,同时存储密文与密码验证哈希,既实现密码一致性校验,又不暴露敏感信息:

用户1提交数据流程

  • 接收plain_text和password
  • 用指定的KDF(如Argon2、PBKDF2),以password为输入生成两个输出:
    1. encryption_key:用于对称加密的密钥
    2. password_hash:用于后续验证的哈希值
  • 使用encryption_key对plain_text执行对称加密(如AES-GCM),得到encrypted
  • 将encrypted和password_hash存入数据库(不存储原始plain_text和password)

用户2请求查看流程

  • 接收用户提交的password
  • 用相同的KDF参数,以该password为输入生成new_password_hash和new_encryption_key
  • 对比new_password_hash与数据库中存储的password_hash:
    • 若不一致,直接返回「密码验证失败」,不执行解密操作
    • 若一致,用new_encryption_key解密encrypted,返回原始plain_text

需求符合性验证

  1. 不返回错误解密文本:只有密码验证通过才会执行解密,错误密码直接被拦截,不会用无效密钥尝试解密密文
  2. 不存储plain_text:数据库仅保留加密后的encrypted
  3. 不存储正确的password:仅存储KDF生成的password_hash,无法从哈希反向推导出原始密码

内容的提问来源于stack exchange,提问作者Alsaraha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 16:10:33