HMAC 256 与 HMAC 512 JWT 签名加密

HMAC 256 vs HMAC 512 JWT signature encryption

HS256 和 HS512 加密算法之间是否存在实际差异,或者与已经牢不可破的密钥相比,更长密钥的额外安全性是否多余?我应该使用哪一个来加密 JWT 令牌?

是否可以将 HS512 加密与 auth0 java JWT 一起使用?

该算法用于对令牌的 header 和有效负载执行数字签名(非加密)。如果要加密令牌负载,则需要应用 JWE 标准(参见 RFC

Is there a practical difference between HS256 and HS512 encryption algorithms, or is the additional security from longer key redundant compared to already unbreakable key? Which one should I use to encrypt the JWT token?

HS256 表示 HMAC-SHA256。与 HS512 的区别在于哈希方法本身的强度。你可以看看keylength.com website and this answer。你会看到即使是 SHA-256 也有相当大的安全余量。更重要的是,HMAC 算法几乎没有注意到对底层哈希算法的攻击。因此,即使您可以安全地使用 HMAC-SHA1。

Is it even possible to use HS512 encryption with auth0's java JWT?

我看了一下代码,是可以的(但没有文档)。使用类似于

的东西
JWTSigner.Options options = new JWTSigner.Options();
options.setAlgorithm(Algorithm.HS512);
jwtSigner.sign(claims, options);