欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-12 22:24:08
...

BCrypt密码加密

开发准备工作

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

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

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

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

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

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加密算法,图文详解不怕你学不会