Java md5加密

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

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

1、使用JDK自带MessageDigest

 1 public class MD5Util {
 2     
 3     public static String getMD5Str(String str) {
 4         byte[] digest = null;
 5         try {
 6             MessageDigest md5 = MessageDigest.getInstance("md5");
 7             digest  = md5.digest(str.getBytes("utf-8"));
 8         } catch (NoSuchAlgorithmException e) {
 9             e.printStackTrace();
10         } catch (UnsupportedEncodingException e) {
11             e.printStackTrace();
12         }
13         //16是表示转换为16进制数
14         String md5Str = new BigInteger(1, digest).toString(16);
15         return md5Str;
16     }
17  
18 }

2、使用Spring自带的DigestUtils

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

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

说明 

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

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

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

posted @ 2022-08-03 16:49  酷盖的小机灵  阅读(1803)  评论(0编辑  收藏  举报