當前位置:編程學習大全網 - 源碼破解 - 誰能通俗易懂地講講MD5加密原理?

誰能通俗易懂地講講MD5加密原理?

MD5算法的原理可簡要的敘述為:MD5碼以512位分組來處理輸入的信息,且每壹分組又被劃分為16個32位子分組,經過了壹系列的處理後,算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成壹個128位散列值。

在MD5算法中,首先需要對信息進行填充,這個數據按位(bit)補充,要求最終的位數對512求模的結果為448。也就是說數據補位後,其位數長度只差64位(bit)就是512的整數倍。

即便是這個數據的位數對512求模的結果正好是448也必須進行補位。

補位的實現過程:首先在數據後補壹個1 bit; 接著在後面補上壹堆0 bit, 直到整個數據的位數對512求模的結果正好為448。總之,至少補1位,而最多可能補512位。

擴展資料

當需要保存某些密碼信息以用於身份確認時,如果直接將密碼信息以明碼方式保存在數據庫中,不使用任何保密措施,系統管理員就很容易能得到原來的密碼信息,這些信息壹旦泄露, 密碼也很容易被破譯。為了增加安全性,有必要對數據庫中需要保密的信息進行加密,這樣,即使有人得到了整個數據庫,如果沒有解密算法,也不能得到原來的密碼信息。

MD5算法可以很好地解決這個問題,因為它可以將任意長度的輸入串經過計算得到固定長度的輸出,而且只有在明文相同的情況下,才能等到相同的密文,並且這個算法是不可逆的,即便得到了加密以後的密文,也不可能通過解密算法反算出明文。

這樣就可以把用戶的密碼以MD5值(或類似的其它算法)的方式保存起來,用戶註冊的時候,系統是把用戶輸入的密碼計算成 MD5 值,然後再去和系統中保存的 MD5 值進行比較,如果密文相同,就可以認定密碼是正確的,否則密碼錯誤。

通過這樣的步驟,系統在並不知道用戶密碼明碼的情況下就可以確定用戶登錄系統的合法性。這樣不但可以避免用戶的密碼被具有系統管理員權限的用戶知道,而且還在壹定程度上增加了密碼被破解的難度。

MD5 算法還可以作為壹種電子簽名的方法來使用,使用 MD5算法就可以為任何文件(不管其大小、格式、數量)產生壹個獨壹無二的“數字指紋”,借助這個“數字指紋”,通過檢查文件前後 MD5 值是否發生了改變,就可以知道源文件是否被改動。

  • 上一篇:明天休息壹天的說說朋友圈
  • 下一篇:申請ios開發者賬號需要交錢嗎
  • copyright 2024編程學習大全網