MD5還廣泛用於加密和解密技術上,在很多操作系統中,用戶的密碼是以MD5值(或類似的其它算法)的方式保存的, 用戶Login的時候,系統是把用戶輸入的密碼計算成MD5值,然後再去和系統中保存的MD5值進行比較,而系統並不“知道”用戶的密碼是什麽。
壹些黑客破獲這種密碼的方法是壹種被稱為“跑字典”的方法。有兩種方法得到字典,壹種是日常搜集的用做密碼的字符串表,另壹種是用排列組合方法生成的,先用MD5程序計算出這些字典項的MD5值,然後再用目標的MD5值在這個字典中檢索。
即使假設密碼的最大長度為8,同時密碼只能是字母和數字,***26+26+10=62個字符,排列組合出的字典的項數則是P(62,1)+P (62,2)….+P(62,8),那也已經是壹個很天文的數字了,存儲這個字典就需要TB級的磁盤組,而且這種方法還有壹個前提,就是能獲得目標賬戶的密碼MD5值的情況下才可以。
在很多電子商務和社區應用中,管理用戶的Account是壹種最常用的基本功能,盡管很多 Application Server提供了這些基本組件,但很多應用開發者為了管理的更大的靈活性還是喜歡采用關系數據庫來管理用戶,懶惰的做法是用戶的密碼往往使用明文或簡單的變換後直接保存在數據庫中,因此這些用戶的密碼對軟件開發者或系統管理員來說可以說毫無保密可言。