如何使用 BCryptPasswordEncoder 解码密码?

Pri*_*nce 4 encryption decode spring-security bcrypt

我想从数据库中解码加密值。当用户忘记密码时,我想通过邮件将实际密码发送给用户。

以下是用于对密码进行编码的代码

BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String password = passwordEncoder.encode(user.getPassword());
Run Code Online (Sandbox Code Playgroud)

如何进行解码?

rus*_*tyx 8

BCrypt 是一种密码散列函数,即单向函数

您无法解密 BCrypt 哈希,就像您无法从鸡肉麦块返回原始鸡肉一样。

您只能验证两个 BCrypt 哈希值是否相同,从而验证提供的密码是否与原始密码匹配。

一个典型的解决方案是向用户发送一次性密码重置链接,使用秘密问题或其他一些确认用户身份的信息让他们设置新密码。