如何在Java中使用RSAPublicKey和RSAPrivateKey类?

ask*_*ask 6 java rsa jwt

我正在尝试使用 [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 文件,但我也无法使用它。

Fat*_*ami 7

首先创建 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)

  • 该代码生成一个新的密钥对。如果您想使用现有的密钥对,只需从密钥库(更快)或从 pem 文件加载它 /sf/ask/825130001/ -和-公钥/14177328 (3认同)