在不同環境下MD5加密相同字符串,密文不一樣的問題


這是昨天做一個接口對接時遇到的一個問題。下面是md5加密的算法

 1 public static String md555(String plainText) throws UnsupportedEncodingException {
 2 byte[] secretBytes = null;
 3 try {
 4 secretBytes = MessageDigest.getInstance("md5").digest(
 5 plainText.getBytes());
 6 } catch (NoSuchAlgorithmException e) {
 7 throw new RuntimeException("沒有md5這個算法!");
 8 }
 9 String md5code = new BigInteger(1, secretBytes).toString(16);// 16進制數字
10 // 如果生成數字未滿32位,需要前面補0
11 for (int i = 0; i < 32 - md5code.length(); i++) {
12 md5code = "0" + md5code;
13 }
14 return md5code;
15 }

這里會出現的問題是字符串編碼問題,如果不進行編碼的話有可能會產生不一樣的密文。這里只需要改成

plainText.getBytes(“utf-8”)就可以了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM