Springboot项目中,常用几种加密算法之一解析--详解BCrypt加密算法,图文详解不怕你学不会

BCrypt密码加密

开发准备工作

Springboot项目中,常用几种加密算法之一解析--详解BCrypt加密算法,图文详解不怕你学不会_第1张图片

  1. 导入jar包
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 导入bean
@Bean 
public BCryptPasswordEncoder bcryptPasswordEncoder(){ 
     return new BCryptPasswordEncoder(); 
}
  1. 如下图所示
    Springboot项目中,常用几种加密算法之一解析--详解BCrypt加密算法,图文详解不怕你学不会_第2张图片

  2. 然后还需要做一个配置类,目的是为了解决页面的安全控制:
    如果不做这一步的话,在导入security-jar包的情况下会导致你访问你自己的页面都会跳到login.html
    而这个页面不是我们自己写的,甚至都不知道哪里来的
    这其实是你导入的jar包捣的鬼,它会进行安全的控制,访问你的页面需要进行验证
    在启动类的时候不难发现有这么一串
    Springboot项目中,常用几种加密算法之一解析--详解BCrypt加密算法,图文详解不怕你学不会_第3张图片
    这就是你登录的密码,账号是user
    嫌麻烦的还是老老实实在配置类加下以下配置类吧
    Springboot项目中,常用几种加密算法之一解析--详解BCrypt加密算法,图文详解不怕你学不会_第4张图片

  3. 加密过程其实很简单,仙人们都已经给我们写好导成jar包了,我们站在巨人的肩膀上开发

String str=encoder.encode(加密字段);

如下图所示:
Springboot项目中,常用几种加密算法之一解析--详解BCrypt加密算法,图文详解不怕你学不会_第5张图片
解密的过程

public Admin login(Admin admin) {
	    //根据用户名查询对象
	    Admin loginAdmin = adminDao.findByLoginname(admin.getLoginname());
	    //根据对象中的密码,进行加密比对
	    //encoder.matches(原密码,加密后的密码);
	    if(loginAdmin!=null && encoder.matches(admin.getPassword(),loginAdmin.getPassword())){
		//登录成功
		return loginAdmin;
	    }
            return null;

	}

下期聊一聊常见的一些加密算法以及概念,晚安

Springboot项目中,常用几种加密算法之一解析--详解BCrypt加密算法,图文详解不怕你学不会_第6张图片

你可能感兴趣的:(加密解密,算法,哈希,java,spring,boot)