spring security 中解密时如何解密的?

Spring Security 使用的PasswordEncoder如BCryptPasswordEncoder进行加密时结合了SHA-256、随机盐和密钥。解密时,它并不真正解密,而是通过保存在加密后的密码中的盐信息重新生成哈希进行匹配。例如,BCrypt的hashPass中包含了盐,当比较时,会使用BCrypt的`String hashpw(String password, String salt)`方法,用原始密码和盐重新生成哈希,如果与已存储的hashPass匹配,则验证成功。" 89163834,7770975,SQL注入深度解析:预防与对策,"['代码审计', 'SQL安全', 'Web安全', 'PHP开发', 'JAVA开发', '.NET开发']
摘要由CSDN通过智能技术生成
[是无法将加密后的密文解密成明文只能通过 bcryptPasswordEncoder.matches("admin",hashPass);来比较密码是否正确]

参考来源:https://www.zhihu.com/question/54720851

spring security 中PasswordEncoder的加密是采用SHA-256+随机盐+密钥进行加密,那解密时如何解密的?

学习到这一块,查看了一些源码。以BCryptPasswordEncoder为例

public class BCryptPasswordEncoderTest {
    public static void main(String[] args) {
        String pass = "admin";
        BCryptPasswordEncoder bcryptPasswordEncoder = new BCryptPasswordEncoder();
        String hashPass = bcryptPasswordEncoder.encode(pass);
        System.out.println(hashPa
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值