md5加密演算法介紹以及java實現md5加密演算法

來源:酷知科普網 2.94W

我們平時做網站設計時候在使用者名稱密碼處,密碼經常採用md5加密方式,這樣即便資料庫被其他人弄走仍然能保障下使用者的隱私。本篇就簡單介紹下md5加密演算法以及用一個java例項實現md5加密。

操作方法

(01)MD5演算法是典型的訊息摘要演算法,其前身有MD2、MD3和MD4演算法,它由MD4、MD3和MD2演算法改進而來。不論是哪一種MD加密演算法,它們都需要獲得一個隨機長度的資訊併產生一個128位的資訊摘要。如果將這個128位的二進位制摘要資訊換算成十六進位制,可以得到一個32位的字串,因此我們加密完成後的16進位制的字串長度為32位。

(02)下面我們將通過java程式碼來實現md的加密程式碼並進行測試。jdk自身所帶的支援md2以及md5的加密實現。本篇都將介紹如何編寫。首先我們在myeclipse首頁導航選單處點選File,然後選擇new,然後選擇Java Project。進入建立java專案介面。

md5加密演算法介紹以及java實現md5加密演算法

(03)然後在專案建立介面輸入本次測試所用的專案名稱:MdJDKUtil,選擇JRE環境本篇選擇為1.7,選擇完畢後點擊Finish。完成專案的建立。

md5加密演算法介紹以及java實現md5加密演算法 第2張

(04)然後右擊專案,選擇new,然後選擇class。進入建立實體類介面。具體操作如下圖所示。

(05)然後在新建類介面,輸入本次用的包名稱:,類名稱為:md5JdkUtil,勾選自動生成main函式。以上資訊填寫完畢後,點選Finish,完成實體類的建立。具體操作如下圖所示。

md5加密演算法介紹以及java實現md5加密演算法 第3張

(06)由於本篇中md加密後的資訊最終以16進位制輸出,因此我們首先編寫byte陣列轉換為16進位制並以字串形式展現。首先我們建立方法名稱:convertByteToHexString,此方法要一個傳入引數為byte陣列,並最終返回String型別。具體程式碼實現如下圖所示。

md5加密演算法介紹以及java實現md5加密演算法 第4張

(07)然後我們編寫md2加密演算法的實現。方法名稱為:md2Jdk,此方法需要傳入一個引數String(原始資訊),返回為String(加密後資訊)。此方法內加密核心主要利用了jdk自帶的MessageDigest類,此類位於:rity包下。具體實現程式碼如下圖所示。

md5加密演算法介紹以及java實現md5加密演算法 第5張

(08)然後我們編寫md5加密演算法實現。方法名稱為:md5Jdk,同樣需要傳入一個引數String(原始資訊),返回為String(加密後資訊)。此方法的核心方法同md2一樣也是利用了MessageDigest類的方法。具體實現如下圖所示。

md5加密演算法介紹以及java實現md5加密演算法 第6張

(09)下面我們編寫測試類。在main函式內呼叫寫好的兩個加密方法:md2Jdk,md5Jdk。傳入相同的引數hello jdk md。分佈對加密後的資訊進行輸出。具體實現程式碼如下圖所示。

md5加密演算法介紹以及java實現md5加密演算法 第7張

(10)最後我們執行程式檢視結果。可以看到md2以及md5加密演算法的結果,加密後資訊長度都為32位16進位制。由於此方法不可逆,因此沒有解密方法。具體效果如下圖。

md5加密演算法介紹以及java實現md5加密演算法 第8張

特別提示

md類加密演算法不可逆,經常用於資訊完整性的校驗,以及使用者敏感資訊的儲存。

熱門標籤