如何使用BCryptPasswordEncoder解码密码?

时间:2018-07-15 13:53:28

标签: encryption spring-security decode bcrypt

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

以下是用于编码密码的代码

BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String password = passwordEncoder.encode(user.getPassword());

如何解码?

2 个答案:

答案 0 :(得分:1)

BCrypt是密码哈希函数,即one-way function

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

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

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

答案 1 :(得分:0)

不建议将实际密码发送给用户。您可以发送激活链接,而不是通过电子邮件发送。