Algorithm-Design
用於 JWT API 身份驗證的 HMAC-SHA256 與 HMAC-SHA512
編碼/解碼 JWT Web 應用程序令牌時推薦使用哪種算法?使用
HMAC-SHA256
足夠還是會使用HMAC-SHA512
提供更多安全性?在 64 位機器上,真的HMAC-SHA512
比 快HMAC-SHA256
嗎?
兩種算法都提供了足夠的安全性,接近散列的輸出大小。因此,即使 HMAC-512 會更強大,差異也無關緊要。如果這曾經失敗,那是因為算法本身被破壞了,並且由於兩種雜湊算法都是相關的,所以很可能兩者都會遇到麻煩。然而,這種攻擊是未知的,而且 HMAC 結構本身似乎確實非常強大。
SHA-512 在 64 位機器上確實比 SHA-256 快。SHA-512 的塊大小提供的成本可能不利於 HMAC-ing 短消息大小。但是您可以肯定地使用 HMAC-SHA-512 來加速更大的消息大小。再說一次,SHA-256 本身很快,並且在 32 位和更低的機器上更快,所以如果可能涉及低端機器,我會選擇 HMAC-SHA-256。
請注意,較新的 x86 處理器還包含 SHA-1 和 SHA-256 加速器硬體,因此與 SHA-512 相比,這可能會將速度優勢轉移回 SHA-256 的優勢。