protected String signMD5(List<String> paramNames, String key, String charset) throws UnsupportedEncodingException { if (key == null) throw (new IllegalArgumentException( "No KEY, no sign. Please check your configuration.")); StringBuilder sb = new StringBuilder().append( this.toQueryString(paramNames)).append(key); String sign = CryptoUtil.byteToHex(CryptoUtil.MD5Digest(sb.toString() .getBytes(charset))); return (sign); }
protected String toQueryString(List<String> paramNames) { URLBuilder ub = new URLBuilder(); for (String key : paramNames) ub.appendParam(key, this.getProperty(key)); return (ub.toString()); }
public URLBuilder appendParam(String key, String value) { if (key != null && value != null) { this.appendParamPrefix(); this.builder.append(key).append('='); this.builder.append(value); } return (this); }
public static String byteToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(bytes.length * 2); for (int i = 0; i < bytes.length; i++) sb.append(String.format("%02x", bytes[i] & 0xff)); return (sb.toString()); }
public static byte[] MD5Digest(byte[] in) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] out = md.digest(in); return (out); } catch (NoSuchAlgorithmException ex) { // never occur ex.printStackTrace(); return (null); } }