Password-Hashing
限制密碼長度以“防止散列函式分裂成多個散列”?
鑑於我們使用眾所周知的密碼散列函式,即 SHA256、SHA512、BCrypt 或 PBKDF2。我們的資訊保障 SME 建議我們將輸入截斷為這些散列函式:
…防止散列函式將其拆分為多個散列。
我沒有聽說過這樣做的雜湊函式,事實上,我曾假設用雜湊函式對字元串進行雜湊處理會產生一個固定長度的字元串——我做出這個假設是不正確的嗎?
舊 Windows 版本中使用的臭名昭著的“LANMAN 雜湊”存在一個問題,它將密碼分成 7 個字節的塊並分別計算每個塊的雜湊值。這一點,再加上缺少鹽和其他糟糕的設計決策,意味著“keyboard42”密碼和“KeyBoarMint”密碼儲存相同的第一個值,使其特別容易受到稱為“彩虹表”的時空權衡的影響。對手預先計算大量數據,然後只需很少的工作即可反轉密碼雜湊。
您提到的現代方案不僅可以抵禦此類攻擊,而且即使在 1970 年代,精心設計的密碼雜湊也不易受到 Rainbow 表的攻擊。給你的建議很差。