我正在尝试使用 [Java JWT] 库(https://github.com/auth0/java-jwt)生成 JWT,我需要创建私钥和公钥的实例,即 RSAPrivateKey 和 RSAPublicKey。
//RSA
RSAPublicKey publicKey = //Get the key instance
RSAPrivateKey privateKey = //Get the key instance
Algorithm algorithmRS = Algorithm.RSA256(publicKey, privateKey);
Run Code Online (Sandbox Code Playgroud)
如何创建 RSAPrivateKey 和 RSAPublicKey 的实例?
我已经使用OpenSSL(如果有帮助的话)创建了 .pem 文件,但我也无法使用它。
首先创建 KeyPairGenerator 来创建 KeyPair。
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个使用 RSA 的 KeyPairGenerator。接下来,使用您希望其使用的字节数初始化生成器,然后创建密钥对。
kpg.initialize(1024);
KeyPair kp = kpg.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)
使用 Getters 从 KeyPair kp 中获取 PublicKey 和 PrivateKey,因为 RsaPublicKey 只是 Key 的子类,并且我们使用 RSA 制作了这些密钥,所以我们可以安全地将 PublicKey 和 PrivateKey 类转换为 RSAPublicKey 和 RSAPrivateKey
RSAPublicKey rPubKey = (RSAPublicKey) kp.getPublic();
RSAPrivateKey rPriKey = (RSAPrivateKey) kp.getPrivate();
Run Code Online (Sandbox Code Playgroud)