前言:
MD5可生成16、32、64位數的簽名。
// MD5加碼,32位
public static String toMD5(String plainText) { String result = ""; try { //生成實現指定摘要算法的 MessageDigest 對象。 MessageDigest md = MessageDigest.getInstance("MD5"); //使用指定的字節數組更新摘要。 md.update(plainText.getBytes()); //通過執行諸如填充之類的最終操作完成哈希計算。 byte b[] = md.digest(); //生成具體的md5密碼到buf數組 int i; StringBuffer buf = new StringBuffer(""); for (int offset = 0; offset < b.length; offset++) { i = b[offset]; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); } result = buf.toString(); //System.out.println("16位: " + buf.toString().substring(8, 24));// 16位的加密,其實就是32位加密后的截取 } catch (Exception e) { e.printStackTrace(); } return result; }