MD5 常用於密碼加密,例如,在註冊時可以將密碼轉為 MD5 再放入資料庫,在登錄時校驗登錄密碼和資料庫存放的加密密碼是否一致,來保證密碼在資料庫中存儲的安全性。 下麵介紹使用 Java 自帶的加密類 MessageDigest 來加密字元: /** * MD5生成器 * * 1.MD5(messa ...
MD5 常用於密碼加密,例如,在註冊時可以將密碼轉為 MD5 再放入資料庫,在登錄時校驗登錄密碼和資料庫存放的加密密碼是否一致,來保證密碼在資料庫中存儲的安全性。
下麵介紹使用 Java 自帶的加密類 MessageDigest
來加密字元:
/**
* MD5生成器
*
* 1.MD5(message-digest algorithm 5)信息摘要演算法,
* 它的長度一般是32位的16進位數字元串(如81dc9bdb52d04dc20036dbd8313ed055)
* 2.由於系統密碼明文存儲容易被黑客盜取
* 3.應用:註冊時,將密碼進行md5加密,存到資料庫中,防止可以看到資料庫數據的人惡意篡改。
* 登錄時,將密碼進行md5加密,與存儲在資料庫中加密過的密碼進行比對
* 4.md5不可逆,即沒有對應的演算法,從產生的md5值逆向得到原始數據。
* 但是可以使用暴力破解,這裡的破解並非把摘要還原成原始數據,如暴力枚舉法。
*/
public class MD5Utils {
public static String md5(String password) {
//生成一個md5加密器
try {
//創建具有指定演算法名稱如MD5的摘要
MessageDigest md = MessageDigest.getInstance("MD5");
//使用指定的位元組數組更新摘要
md.update(password.getBytes());
//BigInteger 將8位數的字元串轉成16位的字元串,得到的字元串形式是哈希碼值
//BigInteger(參數1, 參數2) 參數1:1表示正數 0表示零 -1表示負數
//md.digest() 進行哈希計算並返回一個位元組數組
return new BigInteger(1, md.digest()).toString(16);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
}
都看到最後了,右下角來個贊鴨!-.- 歡迎評論留言~