1.小写:
比如
abcdef
e80b5017098950fc58aad83c8c14978e
public static String HEXAndMd5(String plainText) { try { MessageDigest md = MessageDigest.getInstance("MD5"); try { md.update(plainText.getBytes("UTF8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } byte b[] = md.digest(); int i; StringBuffer buf = new StringBuffer(200); for (int offset = 0; offset < b.length; offset++) { i = b[offset] & 0xff; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); } return buf.toString(); } catch (NoSuchAlgorithmException e) { LoggerUtil.error("Md5加密异常", e); return null; } }
1.大写:
比如
abcdef
E80B5017098950FC58AAD83C8C14978E
/** * 获得MD5加密字符串 * * @param source 源字符串 * * @return 加密后的字符串 * */ public static String getMD5(String source) { String mdString = null; if (source != null) { try { //关键是这句 mdString = getMD5(source.getBytes("UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } return mdString; } /** * 获得MD5加密字符串 * * @param source 源字节数组 * * @return 加密后的字符串 */ public static String getMD5(byte[] source) { String s = null; char [] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; final int temp = 0xf; final int arraySize = 32; final int strLen = 16; final int offset = 4; try { java.security.MessageDigest md = java.security.MessageDigest .getInstance("MD5"); md.update(source); byte [] tmp = md.digest(); char [] str = new char[arraySize]; int k = 0; for (int i = 0; i < strLen; i++) { byte byte0 = tmp[i]; str[k++] = hexDigits[byte0 >>> offset & temp]; str[k++] = hexDigits[byte0 & temp]; } s = new String(str); } catch (Exception e) { e.printStackTrace(); } return s; }
通用32位MD5算法总结:MD5Util,布布扣,bubuko.com
原文地址:http://blog.csdn.net/javaacmer/article/details/38020105