错误原因
你正在使用 HS512 算法对 JWT 进行签名或解析,但使用的密钥长度只有 56位(7字节),这远低于 RFC 7518 标准要求的 至少 512 位(64 字节)。
这是 一个安全性限制,JWT 库为了防止使用弱密钥导致的安全隐患,主动抛出了异常。
正确做法:生成符合 HS512 要求的密钥
你可以使用 io.jsonwebtoken.security.Keys 工具类来生成一个符合 HS512 要求的密钥:
import io.jsonwebtoken.security.Keys;
import javax.crypto.SecretKey;
SecretKey key = Keys.secretKeyFor(io.jsonwebtoken.SignatureAlgorithm.HS512);
该方法会生成一个 512 位(64 字节) 的随机密钥,适用于 HS512 签名算法。