web應用中,密碼安全性的加密規則

2021-09-01 15:41:32 字數 1824 閱讀 5762

問題描述:

在任何乙個需要有使用者參與的web應用中,就需要確保使用者賬號密碼的安全性。比較常見的是md5直接對密碼加密,或者是通過加入隨機數(鹽值salt)進行混淆加密。但這些規則對黑客來說並不是難事。那如何提高密碼的安全性?

什麼是md5加密?

md5的全稱是message-digest algorithm 5,md5廣泛用於加密和解密技術上,在很多作業系統中,使用者的密碼是以md5值(或類似的其它演算法)的方式儲存的,使用者login的時候,系統是把使用者輸入的密碼計算成md5值,然後再去和系統中儲存的md5值進行比較,來驗證該使用者的合法性。

什麼是鹽值加密?

非加鹽值md5等都可以通過大型的密碼(如彩虹表)表進行對比解密,破解相對輕鬆。或者通過md5解密**可直接解密。由於使用加鹽值以後的密碼相當的安全,即便是你獲得了其中的salt和最終密文,破解也是乙個耗費相當多時間的過程,可以說是破解單純md5的好幾倍。

什麼是md5(md5(password)+salt)加密規則?

由於使用加鹽值以後的密碼相當的安全,即便是你獲得了其中的salt和最終密文,破解也是乙個耗費相當多時間的過程,可以說是破解單純md5的好幾倍,那麼md5(md5(password)+salt)加密規則的密文是如何產生的呢?

加鹽值的密文能否破解?

因為像windows hash(未進行syskey加密)、非加鹽值md5等都可以通過大型的密碼(如彩虹表)表進行對比解密,所以相對而言相當的輕鬆,而帶有加鹽值的密文就相對而言複雜的多,現在的md5表大概是260+g,如果加鹽值的可能性有10000個,那麼密碼表的應該是md5 size*10000,就可以解密出原md5表能夠解密的密碼了,一些**也提供了對應的salt解密,但是測試以後效果並不是非常好,如常規的admin888也未解密出,實在是遺憾,畢竟md5本是不可逆的,帶入隨機值解密出最終密碼的可能性就更低了,至少是相對大多數人而言的。

如果md5鹽值洩露?

如果沒有鹽,當我恰好知道自己的密碼的md5恰好和她的密碼的md5值一樣,而我的密碼是iloveu,那麼她的密碼一定就是iloveu。有了鹽,即使我知道她的鹽,因為md5出來的差異大不同(rule-4),所以我也無法知道她的密碼,即使我們的密碼是一樣的。鹽是要確保每個使用者都是不一樣的。一般的隨機演算法或時間函式都能實現這一點。

鹽如果洩密了,黑客仍然能夠通過窮舉法得到我們的密碼。方法是黑客使用與我們相同的加鹽和攪拌方法,得到md5值。所以就引入了一次一密的登入加密方法,一次一密不是我們每次都要改登入密碼,而是我們每次登入之後,鹽都是要重新計算,更新——我稱這個是醬油。這給黑客破解我們的密碼增加了相當大的難度。

是否還需要https安全證書協議?

其實,黑客不需要知道我們的密碼,它們只需要截斷訊息,偽造session和訊息,就能冒充我們。因此對於網上銀行一類的**,光有鹽和醬油還是遠遠不夠的。這就牽扯了ssl,證書,key,簡訊,token等等一堆的東西。**不但要驗證我們,我們也要驗證**。對於使用者,你必須是我信賴的**;對於**,你必須是我的使用者。

誰在用加鹽值md5演算法?

目前多家的**程式公司都已經加入了該演算法,如常見的vbb論壇、discuz論壇等都採用了,甚至著名的linux開源作業系統早已經加入了這種加密模式。可得而知,這種演算法勢必會在未來應用於更多的範圍。

結論:

在普通的web應用中,盡量採用一次一密的登入加密方法。https安全證書是收費的,如果條件允許,可以結合https安全證書共同加密,提高加密級別。

無線加密的安全性

wep wep是wired equivalent privacy的簡稱,wep 是1999年9月通過的 ieee 802.11 標準的一部分,使用 rc4 rivest cipher 串流加密技術達到機密性,並使用 crc 32 驗和達到資料正確性。有線等效保密 wep 協議是對在兩台裝置間無線傳輸...

密碼系統的安全性

1 無條件安全性 這種評價方法考慮的是假定攻擊者擁有無限的計算資源,但仍然無法破譯該密碼系統。2 計算安全性 這種方法是指使用目前最好的方法攻破它所需要的計算遠遠超出攻擊者的計算資源水平,則可以定義這個密碼體制是安全的。3 可證明安全性 這種方法是將密碼系統的安全性歸結為某個經過深入研究的數學難題 ...

加密演算法中私鑰的安全性

著名的digg 近期遭遇到了一次尷尬的事件,digg不得不對文章進行了審查,並刪除了乙個帖子。因為那個帖子裡包含有這樣的字串 09f911029d74e35bd84156c5635688c0。這個128位的字串代表了什麼含義呢?這串數字是hd 破解金鑰 hd processing key 可以使使用...