參見源碼:
/*<br /> * MD5加密<br /> */<br /> private String getMD5Str(String str) {<br /> MessageDigest messageDigest = null; </p><p> try {<br /> messageDigest = MessageDigest.getInstance("MD5"); </p><p> messageDigest.reset(); </p><p> messageDigest.update(str.getBytes("UTF-8"));<br /> } catch (NoSuchAlgorithmException e) {<br /> System.out.println("NoSuchAlgorithmException caught!");<br /> System.exit(-1);<br /> } catch (UnsupportedEncodingException e) {<br /> e.printStackTrace();<br /> } </p><p> byte[] byteArray = messageDigest.digest(); </p><p> StringBuffer md5StrBuff = new StringBuffer(); </p><p> for (int i = 0; i < byteArray.length; i++) {<br /> if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)<br /> md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));<br /> else<br /> md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));<br /> }<br /> //16位加密,從第9位到25位<br /> return md5StrBuff.substring(8, 24).toString().toUpperCase();<br /> }