Java数据加密

本文讨论了SpringSecurity提供的BCryptPasswordEncoder与MD5密码加密算法的区别,强调BCryptPasswordEncoder的安全性,即使使用相同的明文,每次加密结果都会变化,降低重复破解风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里分享一个Spring Security提供的一个对数据加密的对象(可用于用户登录)
BCryptPasswordEncoderMD5区别

MD5:只要是相同的salt(盐)和原密码,加密后产生的密串都是一致的(非常容易出问题)
BCryptPasswordEncoder:相同的明文,每次生成不同的加密字符串都不一样

   @Test
    public void testEncipher() {
        BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
        //密码加密 底层封装盐值  $2a$10$rQDn0a0bdzhv.yAO9m4uDuTDgVIAPKi1rsOBnNV0Fswo3KXwF.7mu
        String encode = bCryptPasswordEncoder.encode("123456");
        System.err.println("加密encode:" + encode);
        //密码解密 盐值自动匹配
        boolean matches = bCryptPasswordEncoder.matches("123456", "$2a$10$IjG.dUKKNExF03cda4sjZ.wouFW1BrSxXEbnOSp7M3mxMA2y34vDm");

        System.err.println(encode + "==>" + matches);

    }

执行结果

执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值