利用Spring的工具类使用MD5加密
时间:2023-12-21 00:37:07
关于Spring中MD5.使用加密工具
MD三种加密形式
1. 普通的md5进行加密 2. md5 salt(盐)形式加密 3. 密码加密
如何在实际开发中使用?MD5
产生相同的字符串md5是一样的,但为了保证密码等隐私在项目使用中的安全,我们通常使用它md5 盐或密码加密的形式
具体使用
1.通过spring中工具产生的无盐md5
import org.springframework.util.DigestUtils; String pws = DigestUtils.md5DigestAsHex("abd".getBytes()); System.out.println(pws); //4911e516e5aa21d327512e0c8b197616
2.通过spring中工具产生的加盐md5
每次产生的密码可以通过加盐的形式不同
// 手动加盐 salt String s = RandomStringUtils.randomAlphanumeric(10); String pw = "123" s; String s1 = DigestUtils.md5DigestAsHex(pw.getBytes()); System.out.println(s1); // 1.caf48c8d204092e86a290f3f4ad8fcf6 2.8e14ee50f31636231fe59002da0ec648
3.通过spring中国工具类加密密码
import com.heima.utils.common.BCrypt; String gensalt = BCrypt.gensalt();//这是盐 随机生成29个字符 System.out.println(gensalt); //1.$2a$10$Pi.o0Qs2v3tcCsHkD9Kgb. 2.$2a$10$Q3Og2gyFbdfWvStJTfCdtu //密码是123456 String password = BCrypt.hashpw("123456", gensalt); //根据盐对密码进行加密
System.out.println(password);//加密后的字符串前29位就是盐 //$2a$10$Pi.o0Qs2v3tcCsHkD9Kgb.AYaNt/yg6Y8KsAsz79s1KrUwhh8w/0u 2.$2a$10$Q3Og2gyFbdfWvStJTfCdtuOc572y/TlXFvzWiVcYRJJfnpQ5W23L.
4.校验密码的正确性
/** * plaintext: 自己输入的密码 * hashed: 通过密码加密产生的密文 * 通过为true,不通过为false */
boolean checkpw = BCrypt.checkpw("123456", "$2a$10$abRa2gRztbu9dPKBY/nBXOTUP7i0gmzz6qLmiuIYb2LHUU2CsofXa");
System.out.println(checkpw); //true