encryption - 如何使用 BCryptPasswordEncoder 解码密码?

标签 encryption spring-security decode bcrypt

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

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

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

如何进行解码?

最佳答案

BCrypt 是密码散列函数,即 one-way function .

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

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

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

关于encryption - 如何使用 BCryptPasswordEncoder 解码密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51349070/

相关文章:

ssl - 使用和解码原始 SSL 数据作为证据

c# - 错误 RijndaelManaged, "Padding is invalid and cannot be removed"

java - Spring MVC : Redirecting to login when user trying to access secure resource

javascript - 如何用nodejs解码html页面?

ios - 以 UTF-8 格式转换响应时出现问题

javascript - RSA 加密字符串长于 key

mysql - 使用 ColdFusion 和 MySQL 进行密码加密

java - 客户端调用服务器REST API时遇到问题

java - org.springframework.security.authentication.encoding 在 maven 中不存在

java - 仅读取文件夹中的最后两个文本文件