Bcrypt算法代码实现

1.先导入Spring Security框架的依赖 (spring-security-crypto)
 <dependency>
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-crypto</artifactId>
       <version>5.3.8.RELEASE</version>
 </dependency>

 

2.创建Bean注入进去
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 ​
 import java.security.SecureRandom;
 ​
 @Configuration
 public class PasswordConfig {
     /**
      * 随机秘钥的长度
      */
     private int seedLength = 32;
     
     /**
      * : 10 # 加密强度4~31,决定了密码和盐加密时的运算次数,超过10以后加密耗时会显著增加
      */
     private Integer strength = 10;
     
     @Bean
     public BCryptPasswordEncoder passwordEncoder() {
     // 加密强度,数字越大强度越大,越安全,越耗时
         SecureRandom random = new SecureRandom(SecureRandom.getSeed(seedLength));
         return new BCryptPasswordEncoder(strength, random);
     }

}

3.BCryptPasswordEncoder 是PasswordEncoder接口实现类直接拿到对象使用就行
@Autowired
 BCryptPasswordEncoder bCryptPasswordEncoder;
 ​
 // 注册用户存入密码的时候需要加密密码
 String encode = bCryptPasswordEncoder.encode("前端传入的初始密码");
 //将User保存到数据库表,该表包含password列
 user.setPassword(passwordEncoder.encode("前端传入的初始密码");
 ​
 //注册完后登录验证密码  
 //结果为ture就是验证成功                
 boolean matches = bCryptPasswordEncoder.matches("前端传入的初始密码","数据库查到的密码"); 
 ​
                  
 //验证密码是否需要升级
 //结果为flase就是不需要升级 默认是不需要升级                   
 boolean encoding = bCryptPasswordEncoder.upgradeEncoding("加密之后的密码--encode");

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值