JavaScript中能否解密Salt加盐哈希?bcrypt是否支持获取明文密码?
Bcrypt 是否支持解密还原明文密码?
Bcrypt 不提供任何可以从哈希值反向还原出原始明文密码的解密方法,你的现有认知是正确的,它的设计定位就仅支持哈希生成、哈希比对两类功能。
bcrypt 属于面向密码存储场景设计的自适应单向哈希函数,核心设计目标之一就是不可逆性:
- 加密过程会结合随机生成的salt做多轮迭代运算,没有预留任何可逆转换的逻辑后门
- 即使拿到完整的哈希值和生成哈希时用到的salt,也没有公开可行的算法可以反向推导出原始明文
注意事项与替代方案
- 不要尝试通过暴力破解等方式还原用户密码:bcrypt 的高运算成本设计,使得暴力破解普通长度密码的算力、时间成本高到几乎不可接受;同时还原用户明文密码的行为本身违反用户隐私保护相关的合规要求,包括《网络安全法》、GDPR等境内外法规都明确要求服务方不得存储、也不应当具备还原用户明文密码的能力
- 现有业务场景不需要解密能力:如果是用户身份验证场景,你当前在用的
bcrypt.compare()方法已经完全满足需求,不需要获取原始明文;如果是密码找回/重置类场景,走独立的身份核验后设置新密码的流程即可,不需要还原用户的旧密码
内容的提问来源于stack exchange,提问作者lakshya 'Coding' Jain
相关产品推荐
相关产品推荐

