在不同环境下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”)就可以了。

 

posted @ 2017-03-19 22:36  夜里挑灯看剑  阅读(6506)  评论(0编辑  收藏  举报