在不同环境下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