package kj15.util; import org.apache.commons.codec.binary.Hex; import org.junit.Test; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Utils { public static String SALT = "23543df.ggee..lysdaf..aqj23ou89ZXcj@#$@#$#@KJdjklj;D../dSF.,"; /* public static String stringToMD5(String plainText) { byte[] secretBytes = null; try { secretBytes = MessageDigest.getInstance("md5").digest( plainText.getBytes()); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("没有这个md5算法!"); } String md5code = new BigInteger(1, secretBytes).toString(16); for (int i = 0; i < 32 - md5code.length(); i ) { md5code = "0" md5code; } return md5code; }*/ /** * 加盐MD5加密 * <p> * * @Title : getSaltMD5 * </p> * <p> * @Description : TODO * </p> */ public static String getSaltMD5(String password) { // 产生最终的加密盐 password = md5Hex(password SALT); char[] cs = new char[48]; for (int i = 0; i < 48; i = 3) { cs[i] = password.charAt(i / 3 * 2); char c = SALT.charAt(i / 3); cs[i 1] = c; cs[i 2] = password.charAt(i / 3 * 2 1); } return String.valueOf(cs); } /** * 使用Apache的Hex类实现Hex(16进制字符串和)与字节数组的互转 * <p> * * @Title : md5Hex * </p> * <p> * @Description : TODO * </p> */ // @SuppressWarnings("unused") private static String md5Hex(String str) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] digest = md.digest(str.getBytes()); return new String(new Hex().encode(digest)); } catch (Exception e) { e.printStackTrace(); System.out.println(e.toString()); return ""; } } @Test public void ss(){ String saltMD5 = MD5Utils.getSaltMD5("adsads213as132"); System.out.println(saltMD5); } }