亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

密碼哈希,鹽值和哈希值的存儲

密碼哈希,鹽值和哈希值的存儲

臨摹微笑 2019-11-12 10:04:24
假設您可以自由決定將散列密碼存儲在DBMS中的方式。這樣的計劃是否存在明顯的弱點?要創建存儲在DBMS中的哈希值,請執行以下操作:作為鹽一部分的DBMS服務器實例唯一的值,用戶名是鹽的第二部分,并使用實際的密碼創建鹽的串聯,然后使用SHA-256算法對整個字符串進行哈希處理,并將結果存儲在DBMS中。這意味著任何想解決沖突的人都必須分別為每個用戶名和每個DBMS服務器實例分別進行工作。我打算使實際的哈希機制保持一定的靈活性,以允許使用仍在開發中的新的NIST標準哈希算法(SHA-3)。“ DBMS服務器實例唯一的值”不必是秘密的-盡管不會隨意泄露。目的是確保如果有人在不同的DBMS服務器實例中使用相同的密碼,則記錄的哈希值將不同。同樣,用戶名也不會是秘密的-僅是正確的密碼。首先使用密碼,然后使用用戶名和“唯一值”,或者對這三個數據源進行任何其他排列,會有任何好處嗎?或交織字符串呢?我是否需要添加(并記錄)隨機鹽值(每個密碼)以及上述信息?(優點:用戶可以重復使用密碼,并且很可能仍然在數據庫中記錄了一個不同的哈希值。缺點:必須記錄鹽。我懷疑優點遠大于缺點。)密碼哈希:固定長度的二進制字段還是單個字符串字段?我認為這些問題的答案支持我的算法(盡管如果您只是使用隨機鹽,那么“每臺服務器的唯一值”和用戶名組件就不太重要了)。
查看完整描述

3 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

鹽只需要是隨機且唯一的。由于它對攻擊者無濟于事,因此可以自由地知道它。許多系統會在哈希密碼旁邊的列中的數據庫中存儲純文本鹽。

鹽有助于確保兩個人(用戶A和用戶B)碰巧共享同一密碼,這種情況并不明顯。如果沒有每個密碼的隨機唯一鹽,則哈希值將相同,并且顯然,如果用戶A的密碼被破解,則用戶B必須具有相同的密碼。

它還可以防止哈希字典可以與已知密碼匹配的攻擊。例如彩虹桌。

同樣,使用內置“工作因數”的算法也意味著隨著計算能力的提高,創建散列所必須經過的算法也可以增加。例如,bcrypt。這意味著暴力攻擊的經濟學變得難以為繼。據推測,創建已知哈希表將變得更加困難,因為它們需要花費更長的時間來創建?!肮ぷ饕蜃印钡淖兓瘜⒁馕吨仨毥⒏嗟谋怼?/p>


查看完整回答
反對 回復 2019-11-12
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

我認為您使問題復雜化了。

從問題開始:

  1. 您是否要保護弱密碼?

  2. 您是否要緩解彩虹攻擊?

您提出的機制確實可以防止彩虹攻擊,即使用戶A和用戶B具有相同的密碼,哈希密碼也將有所不同。確實,給密碼添加鹽過于復雜,這似乎是一種相當復雜的方法。

  • 將數據庫遷移到另一臺服務器時會發生什么?

    • 您是否可以更改每個數據庫的唯一值,如果可以,那么可以生成全局彩虹表,如果不能,則無法還原數據庫。

相反,我只需要添加額外的列并存儲適當的隨機鹽即可。這將防止任何形式的彩虹攻擊??缍鄠€部署。

但是,它不能保護您免受暴力攻擊。因此,如果您嘗試保護密碼不正確的用戶,則需要在其他地方查找。例如,如果您的用戶具有4個字母的密碼,即使使用鹽和最新的哈希算法,也可能在幾秒鐘內破解它。


查看完整回答
反對 回復 2019-11-12
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

我認為您需要問自己:“與僅生成隨機鹽值并將其存儲起來相比,使其變得更加復雜,您希望從中獲得什么?” 您使算法變得越復雜,就越有可能不經意地引入弱點。不管我怎么說,這聽起來都比較老套,但這很有幫助-您的應用程序有什么特別之處,以至于它需要一種新穎的密碼哈希算法?


查看完整回答
反對 回復 2019-11-12
  • 3 回答
  • 0 關注
  • 925 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號