关键点:.setSigningKey(SECRET_KEY.getBytes())
-
为什么需要
.getBytes()
:-
signWith
方法要求提供一个字节数组作为密钥。这是因为加密算法(如HS256)需要密钥以字节形式处理数据。 -
如果直接传入字符串(如
SECRET_KEY
),需要将其转换为字节数组(通过.getBytes()
),否则会导致错误。
-
-
为什么缺少
.setSigningKey(SECRET_KEY.getBytes())
会报错:-
如果没有显式地调用
.setSigningKey(SECRET_KEY.getBytes())
或类似的代码来设置签名密钥字节数组,signWith
方法将无法获取到有效的密钥,从而抛出IllegalArgumentException
。
-