��package me.xhh.alipay.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import me.xhh.alipay.config.AlipayConfig; /** * R����e/N�[�MD5R�[�Yth8_�e�N�� N ���O�e9 * rHg,�3.0 * O�e9e�g�2010-06-18 * ��f� * N�N N�xS�f/N:N�e�O�UFb7mK�Հ c�O�v�h7O�N�x� UFb7S�N�h9cn��]�Qz�v����� c qgb�g/e�hcQ�,^v�^N[���Ou(��N�x0 * ��N�xN�O�[fN`T�xzve/N�[�c�S�Ou(� S�f/c�O�NN* * */ public class Md5Encrypt { /** * Used building output as Hex */ private static final char[] DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; /** * [�[W{&N2�ۈLMD5R�[� * * @param text * fe� * * @return [�e� */ public static String md5(String text) { MessageDigest msgDigest = null; try { msgDigest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException( "System doesn't support MD5 algorithm."); } try { msgDigest.update(text.getBytes(AlipayConfig.CharSet)); //l�ae9c�S�f/c qgc[�x_b_R�[� } catch (UnsupportedEncodingException e) { throw new IllegalStateException( "System doesn't support your EncodingException."); } byte[] bytes = msgDigest.digest(); String md5Str = new String(encodeHex(bytes)); return md5Str; } public static char[] encodeHex(byte[] data) { int l = data.length; char[] out = new char[l << 1]; // two characters form the hex value. for (int i = 0, j = 0; i < l; i++) { out[j++] = DIGITS[(0xF0 & data[i]) >>> 4]; out[j++] = DIGITS[0x0F & data[i]]; } return out; } }