HS256和HS512加密算法之间是否存在实际差异,或者与已经牢不可破的密钥相比,是否存在更长的密钥冗余的附加安全性?我应该使用哪一个来加密JWT令牌?
甚至可以在auth0' java JWT上使用HS512加密?
答案 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);