WinMD5 MD5簡介
MD5的全稱是Message-Digest Algorithm 5,由麻省理工學院計算機科學實驗室和RSA數據安全公司於20世紀90年代初發明,由MD2、MD3和MD4發展而來。
消息摘要(Message-Digest)壹般指消息的哈希變換,即將任意長度的字節串變換為具有壹定長度的大整數。請註意,我使用“字節字符串”壹詞而不是“字符串”,因為這種轉換只與字節值有關,與字符集或編碼方法無關。
MD5將任意長度的“字節字符串”轉換為128bit的大整數,它是壹種不可逆的字符串轉換算法。換句話說,即使您看到了源程序和算法的描述,您也無法將MD5值轉換回原始字符串。從數學上講,是因為有無限個原始字符串,有點像沒有反函數的數學函數。
加密和解密
MD5也廣泛用於加密和解密技術。在許多操作系統中,用戶的密碼以MD5值的形式保存(或類似的其他算法)。當用戶登錄時,系統將用戶輸入的密碼計算為MD5值,然後與系統中保存的MD5值進行比較,但系統並不“知道”用戶的密碼是什麽。
壹些黑客破解這種密碼的方法是壹種叫做“運行字典”的方法。獲取字典的方法有兩種,壹種是日常收集的用作密碼的字符串表,另壹種是通過排列組合方法生成的。首先通過MD5程序計算這些字典項的MD5值,然後在該字典中搜索目標的MD5值。
即使密碼的最大長度為8,並且密碼只能是字母和數字,***26+26+10=62個字符,字典中的條目數也是p(62,1)+p(62,2)...+p(62,8),那麽
在許多電子商務和社區應用程序中,管理用戶帳戶是最常用的基本功能之壹。盡管許多應用服務器都提供了這些基本組件,但許多應用程序開發人員更喜歡使用關系數據庫來管理用戶,以獲得更大的管理靈活性。懶惰的方式是用戶的密碼通常以明文形式或經過簡單轉換後直接存儲在數據庫中,因此這些用戶的密碼可以說是軟件開發人員或系統管理員的機密。