我正在尝试使用具有密码短语的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的文档。