MD5加密的核心代码:
/** * MD5加密 * * @param data * @return * @throws Exception */ public static byte[] encryptMD5(byte[] data) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance(KEY_MD5); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return data; } md5.update(data); return md5.digest(); } public static String encryptMD5(String data) { return byte2hex(encryptMD5(data.getBytes())); }
public static String byte2hex(byte[] b) { StringBuffer stmp = new StringBuffer(); for (int n = 0; n < b.length; n++) { if ((b[n] & 0XFF)<16) //小于16则代表只有一位16进制数 stmp.append("0"); else stmp.append(Long.toString(b[n] & 0XFF, 16)); } return stmp.toString().toUpperCase(); } public static byte[] hex2byte(byte[] b) { if ((b.length % 2) != 0) throw new IllegalArgumentException("长度不是偶数"); byte[] b2 = new byte[b.length / 2]; for (int n = 0; n < b.length; n += 2) { String item = new String(b, n, 2); b2[n / 2] = (byte) Integer.parseInt(item, 16); } return b2; }
原文地址:http://blog.csdn.net/super_spy/article/details/44036411