MD5加密

1.MD5工具类

MD5工具类代码如下:因为我们经常使用utf-8进行加密,所以就只对外开放了一个硬编码的utf-8的MD5加密,这个工具类可以根据自己的项目加密的编码进行适当的修改,

例如:MD5Encode方法则是对传入指定的编码进行加密,不传按照默认加密。也可以将此方法对外开放。

注意:此加密方法返回的加密代码是大写的。

 1 package com.mmall.util;
 2 
 3 import org.springframework.util.StringUtils;
 4 
 5 import java.security.MessageDigest;
 6 
 7 public class MD5Util {
 8 
 9     private static String byteArrayToHexString(byte b[]) {
10         StringBuffer resultSb = new StringBuffer();
11         for (int i = 0; i < b.length; i++)
12             resultSb.append(byteToHexString(b[i]));
13 
14         return resultSb.toString();
15     }
16 
17     private static String byteToHexString(byte b) {
18         int n = b;
19         if (n < 0)
20             n += 256;
21         int d1 = n / 16;
22         int d2 = n % 16;
23         return hexDigits[d1] + hexDigits[d2];
24     }
25 
26     /**
27      * 返回大写MD5
28      *
29      * @param origin
30      * @param charsetname
31      * @return
32      */
33     private static String MD5Encode(String origin, String charsetname) {
34         String resultString = null;
35         try {
36             resultString = new String(origin);
37             MessageDigest md = MessageDigest.getInstance("MD5");
38             if (charsetname == null || "".equals(charsetname))
39                 resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
40             else
41                 resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
42         } catch (Exception exception) {
43         }
44         return resultString.toUpperCase();
45     }
46 
47     public static String MD5EncodeUtf8(String origin) {
48         origin = origin + PropertiesUtil.getProperty("password.salt", ""); // 这里的盐随意加一个字符串都可以。但是全局盐要唯一。
49         return MD5Encode(origin, "utf-8");
50     }
51 
52 
53     private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5",
54             "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
55 
56 }

2.实战

//MD5加盐加密
user.setPassword(MD5Util.MD5EncodeUtf8(user.getPassword()));

// 然后直接保存到数据库中即可。

原文地址:https://www.cnblogs.com/gbb123/p/6791847.html