BCrypt密码加密
在用户模块,对于用户密码的保护,通常都会进行加密。我们通常对密码进行加密,然后存放在数据库中,在用户进行登录的时候,将其输入的密码进行加密然后与数据库中存放的密文进行比较,以验证用户密码是否正确。 目前,MD5和BCrypt比较流行。相对来说BCrypt比MD5更安全。因为其内部引入的加盐机制
BCrypt:常用的加密方式 ; Bcrypt加密方式, 多次对同一个密码进行加密, 加密出来的结果是不一样的 , 原因是因为盐不一样 ;
BCrypt 官网http://www.mindrot.org/projects/jBCrypt/
MD5:常用的加密方式 ; MD5加密方式, 多次对同一个密码进行加密, 加密出来的结果是一样的 ;
测试
public class TestBcrypt {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
String gensalt = BCrypt.gensalt();
System.out.println("盐:" + gensalt);
String saltPassword = BCrypt.hashpw("123456", gensalt);
System.out.println("加盐后的密码:" + saltPassword);
boolean checkpw = BCrypt.checkpw("123456", saltPassword);
System.out.println("密码校验结果:"+checkpw);
}
}
}