酷知百科網

位置:首頁 > 遊戲數碼 > 互聯網

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

互聯網2.98W

我們平時做網站設計時候在用戶名密碼處,密碼經常採用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類加密算法不可逆,經常用於資訊完整性的校驗,以及用戶敏感資訊的存儲。

標籤:加密算法 MD5 JAVA