提高MD5安全性

2021-08-11 09:26:21 字數 2080 閱讀 8985

username

password

tom123456

注意:永遠不要使用這種方式

驗證流程:

- 1. 提交使用者名稱密碼

- 2. 計算密碼雜湊值

- 3. 比對儲存的雜湊值和計算出的雜湊值是否相等

使用雜湊演算法(可以是md5, sha1, sha256,sha512 結果長度依次增長):

123456sha-512ba3253876aed6b...

username

password

tomba3253876aed6b………

雜湊演算法缺點:

1. 容易遭受彩虹表(rainbow table, 如下)攻擊!通過把大量的雜湊值和原密碼儲存的組合儲存在表中。達到用得到的hash值反向查詢原密碼。

hash_value

original_password

ba3253876aed6b…

123456

c70b5dd9ebfb6f…

abc123

b109f3bbbc244e…

password……

2. 另外乙個缺點是可以看到誰有相同的密碼

username

password

tomba3253876aed6b…

jerry

ba3253876aed6b………

3. 回應一下標題,md5作為密碼已經十分不安全,現在網上有很多**可以通過出入md5 的雜湊碼來查詢對應的明文(通過彩虹表實現)。

salt可以簡單的理解成:隨機產生的一定長度的,可以和密碼相結合,從而使hash演算法產生不同結果的字串。

123456 + 0x23f22(salt)sha-512bc22711a45e73e5e50f8...

username

salt

password

tom0x23f22

bc22711a45e73e5e50f8…

優點:這種方法會極大防止受到彩虹表的攻擊,因為即便攻擊者構造出彩虹表,因為你使用了 hash(密碼+ salt),攻擊者彩虹表裡的雜湊值(hash(密碼))和你資料庫中的雜湊值是不同的。

缺點: 如果攻擊者知道了salt和你的雜湊值,就可以計算出你的原始密碼(當然也沒有那麼容易)

通過迭代計算的方式增加計算密碼的成本。迭代的週期控制在使用者可以接受範圍內,這樣攻擊者的計算和時間成本就會大大增加。

123456 + 0x23f22(salt)sha-512 (500000 times)bc6567567a45e73...

username

iteration

salt

password

tom500000

0x23f22

bc6567567a45e73…

類似的方法可以使用:bcript

hashed value = bcript(password,salt,cost factor)

123456 + 0x23f22(salt) + 10 (cost factor)bcript bc6567567a45e73...

username

password

tom$2a$10$rocufoljqlddm12xmdj32

注:一般的應用應用做到level3就可以了,如果需要更加安全的方式請看下文。

金鑰(encryption key) + bcript的結果aes 256 ox2c78a32f...

username

password

tomox2c78a32f…

- 定時更換金鑰(準備一組金鑰定時更換,首先通過金鑰解密加密儲存的密碼得到 bscript計算出的hash值,在用新的金鑰進行加密)

- 金鑰儲存在在不同的資料來源

(通過將金鑰儲存在不同的資料來源的方法,進一步增加了破解難度,因為需要同時獲得使用者密碼表資料,同時要獲得其他資料來源儲存的金鑰)

密碼發到不同的資料庫示意圖 示意圖

這個總結是根據youtube上 stormpath cto的演講總結,演講位址[在這](

MD5安全分析

但凡部署在廣域網的應用程式,隨隨便便的好多任務具可以根據ip或網域名稱掃瞄應用程式的所有暴露的介面,進而分析引數,注入程式,分分鐘被攻擊。那咋才能保證介面的安全性呢?一 面臨的主要安全問題 a.網路環境假設 a1.假設公共網路 internet,如 wifi 非家庭網路 非辦公網路等 是不安全的,一...

MD5加鹽與安全

php開發者對md5 這個函式是熟悉不過了,很多開發者都使用md5 abc123 對使用者密碼進行加密處理,這樣做沒有錯,但是安全性還是很低的,因為很多 的使用者資料都是用md5進行加密處理的,所以就發生了撞庫事件,最典型的就是前些年12306火車票 上的使用者資訊洩露事件。很多人在多個 使用相同的...

提高IIS的安全性

概要 使用iis的省缺設定就象把你屋子的鑰匙給了別人,本文教你如何把門鎖上。本文不是100 直譯,括號中的是討飯貓的廢話 沒有任何系統是100 安全的,系統漏洞會不斷地發現,這是因為黑客和系統管理員一樣也在整天看著新聞組,收集著這方面的資訊。黑與反黑之間的戰鬥會永遠進行下去。如果你採用iis的省缺設...