最近梳理了一下MD5加密的代碼,兩段代碼一個簡單,一個繁瑣,具體如下:
第一段:
public static String getMD5String(String str) {
try {
// 回傳一個實作MD5演算法的訊息摘要物件
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(str.getBytes());
byte [] bytes = messageDigest.digest();
return new BigInteger(1,bytes).toString(16);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
第二段:
public final static String MD5Test(String res) {
char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f'};
try {
byte[] strTemp = res.getBytes();
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(strTemp);
byte[] md = messageDigest.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
String dd = new String(str);
return dd;
} catch (Exception e) {
return null;
}
}
這兩段代碼傳入引數“hello”,輸入的結果都是“5d41402abc4b2a76b9719d911017c592”
第一段代碼就滿足了需求,為什么把代碼撰寫的像第二段那么復雜?請高手多指導。
uj5u.com熱心網友回復:
我突然明白了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/129402.html
標籤:Java相關
上一篇:求完數
