MD5算法產生多少位的消息摘要?

1.  加密算法和MD5等散列算法的區別

     在軟件開發的用戶註冊功能中常出現MD5加密這個概念,這個概念有一定的誤導性。嚴格來說:MD5還有sha-1、 RIPEMD以及Haval等不能算是加密算法(雖然常用於把密碼變成“密文”),他們只是散列算法,或者叫摘要算法。加密對應解密這個概念,加密算法包括:DES、3DES、IDEA、 RSA、AES等。

     要弄懂這兩類算法的區別,最本質的方式就是把這兩類算法的步驟搞懂,但這需要大量的時間。通過兩類算法的表現可以對他們的區別有個大體的瞭解:
     1.MD5算法除了註冊時對用戶密碼進行MD5運算以外,還常用於驗證下載的軟件的完整性(linux下面md5sum命令可以支持這一典型應用),常用電驢等下載視頻和軟件的用戶應該知道這一點。MD5運算後的長度是固定的,它顯然不可能包含視頻、軟件等源數據的全部信息。對於加密算法來說,加密後的密文是包含原始數據所有信息的,只是不能被直接讀懂變的安全了。
     2.加密算法是一種通信體系,經常用於分佈式系統。它的目標是數據經過傳輸後只能被特定的有密鑰的人讀懂,包含加密算法和密鑰2個要素。而MD5等散列算法卻不包含運算後的數據只能被特定人讀懂的目標,它只讓機器讀懂。當用於加密時,它加密後的數據對所有人一視同仁,且沒有密鑰機制,沒有好的方法從加密後的數據得到原始數據,從而保證數據的安全。它並不是通信機制,它是不可逆的。另外它的驗證數據完整性的功能上面已經提到,我想,很多有心人最初正是從這一點意識到這兩類算法的區別把?

     典型應用:這裏再加一個加密算法的典型應用就可以了,例如所有涉及到IC卡的系統,銀行卡、公交卡、市民卡等等。在數字簽名技術中,同時使用到散列算法和加密算法,見阮一峯的《數字簽名是什麼?》。
     共同點:都屬於計算機安全的範疇,都是爲了保證數據安全。

2.  數據加密和數據完整性

     實際上,數字簽名是保證數據完整性的,但它不保證數據加密,不保證數據傳輸途中無人嗅探竊聽。

    好比一輛敞篷大貨車從A開到B,中途沒有灑落任何東西,完整性得到了保證。但是車上有什麼東西也被路人看光光。

    數據加密是從A到B建了一條虛擬隧道,貨車在裏面開,路人誰也不知道是什麼東西。

     車子到了B後,送貨的人給出自己的身份證,證明自己的確是從A來的。收貨的人可以選擇相信這個身份證。也可以把身份證放到自己的身份證校驗儀查詢,看看是不是公安部發的真的身份證。

    如果你的身份證校驗儀(CA)已經是假的了,那就啥都別說了,重裝系統吧。


發佈了33 篇原創文章 · 獲贊 11 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章