jakarta-ee - 如何以PEM格式生成PKCS#1 RSA key ?

标签 jakarta-ee openssl key-generator pkcs#1

对不起,我的英语,说实话,我对此一点了解不多,请多多包涵。

我正在开发将已签名请求发送到服务器的Java应用程序。
为此,我必须生成PEM格式的PKCS#1 RSA key 对以进行签名和验证。我已经尝试使用OpenSSL v.1.0.1。但是生成的公钥是X.509 PEM

这是我用来生成 key 的openssl命令:

私钥:

openssl genrsa -out name_of_private_key.pem 1024

公钥
openssl rsa -in name_of_private_key.pem -pub out > name_of_public_key.pem

我也经历了这个线程,发现了一个开源的JAVA库BouncyCaSTLe:Generating RSA keys in PKCS#1 format in Java

但是它说BouncyCaSTLe仅用于PKCS#1填充而不是编码。

最好是,如果没有其他选择,我正在寻找使用JAVA或任何第三方生成它的方法。

最佳答案

OPENSSL默认情况下以 PKCS#1 格式生成私钥
如下

-----BEGIN RSA PRIVATE KEY----- 
...
-----END RSA PRIVATE KEY-----


您可以将私钥转换为 PKCS#8 格式
如下

-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----


SSL始终以 X.509 格式导出公钥
如下

-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----


我使用此bat脚本生成RSA key 对。
@ECHO OFF
SET mypath=%~dp0
cd %mypath:~0,-1%

ECHO === GENERATE PRIVATE KEY --- Format: PKCS#1 --- File: private.txt===
openssl genrsa -f4 -out private.txt 4096 

ECHO === GENERATE PRIVATE KEY --- Format: PKCS#8 --- File: private8.txt===
openssl pkcs8 -topk8 -inform pem -in private.txt -outform PEM -nocrypt -out private8.txt

ECHO === GENERATE PUBLIC KEY --- Format: X.509 --- File: public.txt===
openssl rsa -in private.txt -outform PEM -pubout -out public.txt
PAUSE

关于jakarta-ee - 如何以PEM格式生成PKCS#1 RSA key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10783366/

相关文章:

dart - 如何在 Dart 中生成 RSA key ?

c# - 串行 key 生成异或字符串加密

java - 不能在使用接口(interface)的类中使用 EJB

java - Spring MVC 应用程序的这些 mvc :resources mapping tags declared into the servlet-context. xml 意味着什么?

java - 证书链验证

laravel - laravel 5.7安装后是否需要执行 "php artisan key:generate"命令

eclipse - PrimeFaces 登录尝试(示例)失败

java - MVC和jsp什么是 View ?

openssl - 客户端向您提供其公共(public)证书时的相互认证

c++ - 使用 c++/openssl 解密带有密码的文件