HS512 JWT 算法中密钥的理想特征是什么?

What are the ideal characteristics of the secret key in HS512 JWT algorithm?

我正在使用 HS512 算法生成 JWT。

密钥用于签署 header 和内容。目前我使用的密钥如下:q1w2e3r4t5y6u7i8o9p0

HS512 JWT算法中密钥的理想特征是什么?

例如:长度必须是n个字符;包括大写、小写、符号....?

理想情况下,您的 HS512 密码是 512 个随机位(64 个随机字节)。您将此机密编码为 base64、base64url 或十六进制以“存储”,然后在将其用作机密之前对其进行解码。

HS512 是带有 SHA-512 的 HMAC,小于 64 字节的秘密被填充到 64 字节,大于 64 字节的秘密不会增加额外的安全性。

您可以使用 openssl 生成这些,例如

openssl rand -hex 64

这将产生例如

2dae84f846e4f4b158a8d26681707f4338495bc7ab68151d7f7679cc5e56202dd3da0d356da007a7c28cb0b780418f4f3246769972d6feaa8f610c7d1e7ecf6a

然后您将其进行十六进制解码以用作对称密钥。


HS256(256 位,32 字节)、HS384(384 位,48 字节)也是如此。