Hmac
將辣椒與 Bcrypt 一起使用(HMAC + Bcrypt)
將 HMAC 與 Bcrypt 結合起來有用嗎?
如果是這樣,我應該在“Bcrypt”之前對密碼進行 HMAC 嗎?或者我應該在 Bcrypt 輸出上做 HMAC 嗎?
Pepper 的目標是在密碼雜湊數據庫受到破壞但身份驗證系統的其他部分未受到破壞的情況下保護密碼。
密碼散列函式的輸出包含它們的輸入參數、鹽和摘要,因此通過 HMAC 不可恢復地隱藏它會導致無法驗證使用者的密碼。將明文密碼雜湊輸出儲存在“peppered”HMACed 輸出旁邊會洩漏“unpeppered”值。因此,您將胡椒應用於輸入。
這與散列之間沒有什麼不同,bcrypt 與 PBKDF2 或 Argon2 或 Pufferfish2 或任何其他密碼散列函式一樣…