使用jre包,直接贴代码如下,有需要,可以直接运行main方法,查看结果
package com.csl.common.utils; import java.security.MessageDigest; public class MD5Util { /*** * MD5加码 生成32位md5码 */ public static String string2MD5(String inStr){ MessageDigest md5 = null; try{ md5 = MessageDigest.getInstance("MD5"); }catch (Exception e){ System.out.println(e.toString()); e.printStackTrace(); return ""; } char[] charArray = inStr.toCharArray(); byte[] byteArray = new byte[charArray.length]; for (int i = 0; i < charArray.length; i++) byteArray[i] = (byte) charArray[i]; byte[] md5Bytes = md5.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i < md5Bytes.length; i++){ int val = (md5Bytes[i]) & 0xff; if (val < 16) hexValue.append("0"); hexValue.append(Integer.toHexString(val)); } return hexValue.toString(); } /** * 加密解密算法 执行一次加密,两次解密 */ public static String convertMD5(String inStr){ char[] a = inStr.toCharArray(); for (int i = 0; i < a.length; i++){ a[i] = (char) (a[i] ^ 't'); } String s = new String(a); return s; } /** * MD5解密 * @param inStr * @return */ public static String decrypt(String inStr){ String str= convertMD5(convertMD5(inStr)); return str; } // 测试主函数 public static void main(String args[]) { String s = new String("A20180101,B20180101,C20180101,D20180101,E20180101,F20180101,G20180101,F20180101;2-1"); System.out.println("原始:" + s); System.out.println("MD5后:" + string2MD5(s)); System.out.println("加密的:" + convertMD5(s)); System.out.println("解密的:" + decrypt(s)); } }