HMAC 256与HMAC 512 JWT签名加密

时间:2016-07-20 05:25:44

标签: http authentication encryption jwt digital-signature

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

甚至可以在auth0' java JWT上使用HS512加密?

1 个答案:

答案 0 :(得分:5)

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

  

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

HS256表示HMAC-SHA256。与HS512的区别在于哈希方法本身的优势。您可以查看keylength.com网站和此answer。你会发现即使是SHA-256也有相当大的安全边际。更重要的是,HMAC算法几乎无视对底层哈希算法的攻击。所以即使你可以安全地使用HMAC-SHA1。

  

甚至可以在auth0的java JWT中使用HS512加密吗?

我看了一下代码,这是可能的(但没有记录)。使用与

类似的东西
JWTSigner.Options options = new JWTSigner.Options();
options.setAlgorithm(Algorithm.HS512);
jwtSigner.sign(claims, options);
相关问题