Spring security中的BCryptPasswordEncoder

在SpringBoot1.5之前使用的是MD5进行加密处理,但是在SpringBoot2.0之后废弃了该加密算法,采用了BCryptPasswordEncoder

BCryptPasswordEncoder中连个常用的方法

加密

BCryptPasswordEncoder encode = new BCryptPasswordEncoder();
encode.encode(password);

比较(第一个是用户数据的密码,第二个是数据库中存的密码)

matches(CharSequence rawPassword, String encodedPassword) 

测试代码

package com.tedu;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

public class BCryptPasswordEncoderTest {
	public static void main(String[] args) {
		String password = "admin";//模拟用户输入的密码
		BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
		String hash = bCryptPasswordEncoder.encode(password);
		System.out.println("hash:  "+hash);
		
		boolean flag = bCryptPasswordEncoder.matches(password, hash);
		System.out.println(flag);
	}
}

控制台输出如下

hash:  $2a$10$8BE

你可能感兴趣的:(Spring security中的BCryptPasswordEncoder)