因爲Android 平臺支持 java.security.MessageDigest這個包,所以MD5在Android加密中可以像在JavaSE中一樣使用,MD5是一種不可逆的加密算法,我一直想搞清楚爲什麼不可逆,但是發現水很深,乾脆就當場沒有反函數的函數理解。作爲應用開發,我覺得是我們先學會用。下面寫出了個詳細方法:
/**
* @param 傳回MD5加密字符串
* @return
* @throws NoSuchAlgorithmException
*/
public static String getMD5(String val) throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(val.getBytes());
byte[] byteStr = md5.digest();// 加密
StringBuffer sb = new StringBuffer();
int bytelength = byteStr.length;
for (int i = 0; i < bytelength; i++) {
sb.append(byteStr[i]);
}
return sb.toString();
}
後續,不過據說2004年被山東大學一位王小云教授破解了,而且這老爺子還破解了HAVAL-128、
MD4和RIPEMD算法的報告,公佈了MD系列算法的破解結果,本屌絲只能對此讚不絕口,牛逼!!!不過我覺得MD5的安全性還是挺高的,世界上本來就沒有絕對安全牛逼不可破解的方式,是軟件總會存安全漏洞,就像人會有生老病死,MD5的安全性已經可以滿足我們的使用了,足夠對付我們的想對付的了。使用時把登錄用戶傳回的MD5加密字符串與數據庫之前存的MD5加密字符串匹配一下一樣就OK,不放心可以再默認加個前綴後綴啥的就更OK了。