接觸過md5的可能都了解,md5是一種信息摘要算法,不可反向解密,不同長度的內(nèi)容加密后都是32位。它是單向密碼體制,從明文到密文的不可逆映射,只有加密過程沒有解密過程。既然md5是不可逆的,為啥看到網(wǎng)上很多網(wǎng)站聲稱可以解密md5呢?下面,一起來討論一下這個問題。
了解md5為什么是不可逆的
md5不可逆的原因是因為它是一種散列函數(shù),使用的是hash算法,在計算過程中原文的部分信息是丟失了的。也就是說,MD5的運算過程存在信息丟失。由于不知道運算過程中會有多少個進(jìn)位在哪一步被丟棄,因而僅僅根據(jù)MD5的計算過程和得到的最終結(jié)果,是無法逆向計算出明文的。這才是MD5不可逆的真正原因。
md5算法的應(yīng)用
md5主要應(yīng)用于密碼管理、電子簽名、垃圾郵件篩選。
為什么網(wǎng)上在線md5解密網(wǎng)站能夠解密md5?
既然md5無法逆運算,為什么網(wǎng)上還有很多聲稱可以解密md5的網(wǎng)站,其實這不是真正意義上的解密了。網(wǎng)上搜索到的md5解密網(wǎng)站是成千上萬的md5原文和md5密文,放到了數(shù)據(jù)里,所謂的解密就是從數(shù)據(jù)庫里查詢有沒有原文。
這種網(wǎng)站相當(dāng)于md5的字典庫,就是原文和密文的的對應(yīng)表,數(shù)據(jù)量很龐大,上萬億級別,如果用戶的密文正好在字典庫里面,一查對應(yīng)表就行。很多用戶的密碼都不夠復(fù)雜,所以很容易被這種方式生成出來。一般網(wǎng)上這種md5解密網(wǎng)站能解密8位數(shù)左右的純數(shù)字密碼。密碼太復(fù)雜的話,要根據(jù)這個網(wǎng)站的數(shù)據(jù)庫和數(shù)據(jù)量而定。
網(wǎng)上的md5解密網(wǎng)站:http://www.md5.cn/
我們在網(wǎng)上搜索到一個聲稱可以解密md5的網(wǎng)站,下面來測試一下,看它是否真的能解密。
1、打開這個md5解密網(wǎng)站,登錄賬號,可以用QQ登錄或者用微信登錄,沒有賬號的要先注冊。
2、在首頁的輸入框輸入需要解密的md5密文:a141c47927929bc2d1fb6d336a256df4。
3、輸入正確的驗證碼,接著點擊藍(lán)色解密按鈕,稍等片刻就可以得到解密結(jié)果:abc1234。
怎么防御?
1、增加原文長度。當(dāng)原文是12位英文字母和數(shù)字的組合,那么被解密的可能性極低。因為原文的可能性有36的12次方,吧所有的可能性都試一遍,大概需要3萬年。
2、不要在別人的網(wǎng)站上隨意計算md5,有的在線md5加密網(wǎng)站,你用了之后會把原文和密文保存到字典中。
3、加密時加入鹽。
通過網(wǎng)上的各種資料介紹,總算對md5不可逆,但是網(wǎng)上又有很多網(wǎng)站聲稱可以解密md5這個問題,有了大概的了解。大家在平時生活工作中,設(shè)置密碼的時候不要偷懶,盡量設(shè)置復(fù)雜點的密碼,簡單密碼可不安全。