我有一个像这样的实际公钥字符串:
-----BEGIN PUBLIC KEY-----
flajeleofancncMFLDFJOEEFJC9209ueq33rlsjfa3B ...
-----END PUBLIC KEY-----
要创建一个auth0/java-jwt库Algorithm
来签名我的JWT,我需要一个java.security.interfaces.RSAPublicKey
实现实例。给定公钥字符串,我将如何创建该实例?如果有帮助,我也有私钥字符串。
我才刚开始。因此,我愿意采用更简单的方式来签署我的JWT。
答案 0 :(得分:1)
import java.security.KeyFactory;
import java.security.spec.X509EncodedKeySpec;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.EncodedKeySpec;
import java.security.interfaces.RSAPrivateKey;
...
String algorithm = "RSA" // for example
KeyFactory kf = KeyFactory.getInstance(algorithm);
String publicKeyStr = "-----BEGIN PUBLIC KEY-----f24Defosfvak-----END PUBLIC KEY-----"
EncodedKeySpec keySpec = new X509EncodedKeySpec(publicKeyStr.getBytes());
RSAPublicKey publicKey = kf.generatePublic(keySpec);