-
密文不可逆:就是对密码加完密后得到的密文 它是没有直接的API进行解密的。
-
对用户密码进行加密,然后存储到数据库。
-
目前,MD5和BCrypt比较流行;相对来说BCrypt比MD5安全,因为其内部引入了加盐机制
-
加盐机制:随机生成的29个字符的字符串,并且每次都是随机生成的(就是每次生成盐的值都是不同的)
控制台模拟:
package cn.cdw.test;
import org.springframework.security.crypto.bcrypt.BCrypt;
/*
测试BCrypt密码加密
*/
public class TestBCrypt {
public static void main(String[] args) {
//获得盐,盐是一个随机生成的含有29个字符的字符串,并且会与密码一起合并进行最终的密文生成,每一次生成的盐的值都是不同的
String salt = BCrypt.gensalt();
System.out.println("salt密文: " + salt);
//对密码进行加密
String saltPassword = BCrypt.hashpw("123456", salt);
System.out.println("对密码进行密文加密后为: " + saltPassword);
//对密码进行校验。BCrypt不支持反运算,只支持密码校验(返回Boolean类型)。(更安全)
boolean password = BCrypt.checkpw("123456", saltPassword);
System.out.println("对密码进行解密 密码为: " + password);
}
}