利用Spring的工具类使用MD5加密

关于Spring中MD5加密工具类的使用

MD5加密的三种形式

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
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值