public static String md555(String plainText) throws UnsupportedEncodingException { byte[] secretBytes = null; try { secretBytes = MessageDigest.getInstance("md5").digest( plainText.getBytes()); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("沒有md5這個算法!"); } String md5code = new BigInteger(1, secretBytes).toString(16);// 16進制數字 // 若是生成數字未滿32位,須要前面補0 for (int i = 0; i < 32 - md5code.length(); i++) { md5code = "0" + md5code; } return md5code; }
這裏會出現的問題是字符串編碼問題,若是不進行編碼的話有可能會產生不同的密文。這裏只須要改爲算法
plainText.getBytes(「utf-8」)就能夠了。