MD5加密後轉String 問題
阿新 • • 發佈:2019-01-02
專案中遇到一個問題,需要使用MD5加密後將字串上傳,嘗試了幾次發現總是返回簽名錯誤。網上查了很久以後發現
MD5加密後的byte[]陣列不能直接toString()
需要將byte[]每一位都轉成16進位制輸出,程式碼如下
private static String byteToString(String bs) {
StringBuilder stringBuilder = new StringBuilder();
try {
byte[] md5s = MessageDigest.getInstance("MD5" ).digest(bs.getBytes("utf-8"));
for (byte b : md5s) {
stringBuilder.append(String.format("%02x", new Integer(b & 0xff)));
}
return stringBuilder.toString();
} catch (Exception e) {
throw new FatalException("md5物件初始化失敗", e);
}
}