Class ApiKeyHash
java.lang.Object
io.leandev.appfuse.security.auth.ApiKeyHash
API key 的雜湊(ADR-025 決策五)
簽發端(存 hash)與驗證端(比對每個請求帶來的 key)共用本類,確保 round-trip 對稱。
為何是 SHA-256 而非 bcrypt
慢雜湊(bcrypt/argon2)的價值在防低熵密碼的字典攻擊——刻意讓每次嘗試昂貴。API key
由 ClientCredentialsFactory.newApiKey() 產生、256 bits 隨機,沒有字典攻擊面:窮舉在物理上
不可行,慢雜湊擋的是一個不存在的威脅。
而代價是實在的:API key 是逐請求呈遞的憑證,用 bcrypt 等於每個請求付 ≈100ms 的 CPU
——那是自我 DoS。這與 client_secret 的處境不同(後者只在換 token 時比對一次,故用
PasswordEncoder)。
前提是 key 真的高熵:若消費端改用人工指定的短 key,本類的安全論證即不成立——那種情形
應改走密碼路徑(PasswordEncoder),不要沿用本類。
-
Method Summary
-
Method Details
-
of
-