Java MD5加密

2020-04-13 16:02:56来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Java MD5加密

 

MD5加密,比如数据库中密码等敏感字段需要加密存储,核对密码时先以同样的方式对用户输入的密码进行加密,再与数据库中存储的密码比较。

MD5加密有很多种实现方式,此处介绍2种。

 

 

1、使用JDK自带MessageDigest

public class MD5Util {
    
    public static String getMD5Str(String str) {
        byte[] digest = null;
        try {
            MessageDigest md5 = MessageDigest.getInstance("md5");
            digest  = md5.digest(str.getBytes("utf-8"));
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        //16是表示转换为16进制数
        String md5Str = new BigInteger(1, digest).toString(16);
        return md5Str;
    }

}

 

 

2、使用Spring自带的DigestUtils

上面试自己封装,太麻烦,Spring已经给我们封装好了。

String md5Str = DigestUtils.md5DigestAsHex("原串".getBytes());

效果都是一样的。

 

 

说明

只使用md5加密是不行的,很容易被破解。常见的做法有:

  • 先对原串进行一些处理,比如先给它拼接一个字符串常量,再进行md5加密。即使对方解密,也获取不到原串。
  • 使用多种加密算法。比如先用md5加密,再对加密的结果使用其它加密算法进行加密。比如现使用md5加密,对加密的结果再次使用md5加密。

这2种方式方式经常一起使用。

 


原文链接:https://www.cnblogs.com/chy18883701161/p/12693162.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Springboot集成Swagger2

下一篇:函数式接口