MD5加密 江蘇優就業IT培訓

MD5加密方法

MD5是一個安全的散列演算法,輸入兩個不同的明文不會得到相同的輸出值,根據輸出值,不能得到原始的明文,即其過程不可逆;所以要解密MD5沒有現成的演算法,只能用窮舉法,把可能出現的明文,用MD5演算法散列之後,把得到的散列值和原始的數據形成一個一對一的映射表,通過比在表中比破解密碼的MD5演算法散列值,通過匹配從映射表中找出破解密碼所對應的原始明文。

江蘇優就業:http://www.ujiuye.com/jiangsu/

對信息系統或者網站系統來說,MD5演算法主要用在用戶註冊口令的加密,對於普通強度的口令加密,可以通過以下三種方式進行破解:

(1)在線查詢密碼。一些在線的MD5值查詢網站提供MD5密碼值的查詢,輸入MD5密碼值后,如果在資料庫中存在,那麼可以很快獲取其密碼值。

Advertisements

(2)使用MD5破解工具。網路上有許多針對MD5破解的專用軟體,通過設置字典來進行破解。

(3)通過社會工程學來獲取或者重新設置用戶的口令。

因此簡單的MD5加密是沒有辦法達到絕對的安全的,因為普通的MD5加密有多種暴力破解方式,因此如果想要保證信息系統或者網站的安全,需要對MD5進行改造,增強其安全性,本文就是在MD5加密演算法的基礎上進行改進!

1 private String formatMD5String(String param){ 2 try { 3 MessageDigest digest = MessageDigest.getInstance("MD5"); 4 //加密 5 byte[] miwen = digest.digest(param.getBytes()); 6 StringBuilder builder = new StringBuilder(); 7 for(byte b:miwen) { 8 String hex = Integer.toHexString(b & 0xFF); 9 10 if (hex.length()==1){11 hex = 0+hex;12 }13 builder.append(hex);14 System.out.println(hex);15 }16 return builder.toString();17 } catch (NoSuchAlgorithmException e) {18 e.printStackTrace();19 }20 return String.valueOf(param.hashCode());21 }

Advertisements

Advertisements

你可能會喜歡