【发布时间】:2019-06-01 17:11:51
【问题描述】:
我有一个由 OpenSSL 生成的受密码保护的 PEM 密钥文件
openssl genrsa -aes128 -passout stdin -out testfile.pem
我还使用 OpenSSL 生成了一个公钥文件
openssl rsa -in testfile.pem -out testfile_pub.pub(密码提示)
我希望能够使用此私钥签署我的声明等,然后发送请求。我正在努力理解(或者更像是确认我的理解)如下:
1) 我的私钥是受密码保护的,这是否意味着没有人可以在不先解锁的情况下真正生成公钥?也就是说,这就是保护的所在?
2) 如果我要在 Java 中读取这个加密的私钥 PEM 文件,我将不得不做类似的事情:
\\ 1. Read file as string
\\ 2. Replace all boring bits e.g. begin/end/rsa/private/public/key/enc/--
\\ 3. decode using Base64
\\ 4. read as PKCS8 keyspec and generate PrivateKey object
但这是否意味着实际上没有人阻止我阅读 keyspecs ?我想我想比较的是我们如何使用可选的 keypass/storepass 生成JKS 密钥。但也许我不应该比较这个。
谁能帮我理解一下?
谢谢,
【问题讨论】:
-
如果您想保留
genrsa和rsa使用的'传统' (PKCS1) 格式并且可以使用BouncyCastle,请参阅*.com/questions/44681737