使用RSA256 +密码生成JWT令牌

时间:2020-05-04 05:14:08

标签: java jwt rsa

我正在尝试使用具有密码短语的RSA256私钥对JWT令牌进行签名。

这是我使用的用于生成密码的代码:

byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary(key);
Key signingKey = new SecretKeySpec(apiKeySecretBytes, signatureAlgorithm.getJcaName());
JwtBuilder builder = Jwts.builder().setIssuedAt(now).signWith(SignatureAlgorithm.RS256, signingKey);
LOGGER.info(builder.compact());

我遇到以下错误:

java.lang.IllegalArgumentException:RSA签名必须使用RSA私钥来计算。类型为javax.crypto.spec.SecretKeySpec的指定密钥不是RSA私钥。

该错误表示私钥存在某些问题,但是我确实使用JavaScript对其进行了验证,并且似乎可以正常工作(允许我提供passPhrase)。但是,使用Java时,我很难找到有关提供passPhrase的文档。

0 个答案:

没有答案