如何将 XML RSA 密钥转换为 PEM 文件?
我有两个 XML 文件,结构如下:
我的密钥
<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
<P> ... </P>
<Q> ... </Q>
<DP> ... </DP>
<DQ> ... </DQ>
<InverseQ> ... </InverseQ>
<D> ... </D>
</RSAKeyValue>
公钥
<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
</RSAKeyValue>
我正在使用 Robert Richards 的 xmlseclibs
库,它需要 .PEM密钥的表示形式,以便加密和解密事物。
作为一个加密新手,我不知道从哪里开始,粗略的谷歌搜索没有显示任何特别明显的东西......
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我找到了一个可以做到这一点的 Java 实用程序。
I have found a Java utility that can do it.
对于那些希望 BouncyCastle 能够读取生成的 PEM 的人:
最终的解决方案我很高兴与:
java XMLSec2PEM my.xml > my.pem
my.pem
org.bouncycastle.openssl.PEMReader.readObject()
返回null
:- (PEMReader
读取my.pkcs8.pem
For those who want the resulting PEM to be readable by BouncyCastle:
The final solution I am happy with:
java XMLSec2PEM my.xml > my.pem
my.pem
manually a bitorg.bouncycastle.openssl.PEMReader.readObject()
returnsnull
:-(openssl pkcs8 -topk8 -inform pem -in my.pem -outform pem -nocrypt -out my.pkcs8
openssl pkcs8 -inform pem -nocrypt -in my.pkcs8 -out my.pkcs8.pem
my.pkcs8.pem
is readable with thePEMReader
我在 python 中的解决方案是这样的:
长度为2的字符串:
rsa 库的公钥:
我进行此开发是为了使用一个 Web 服务,该服务要求从 XML 格式的公钥发送加密密码。通过这种方式,我成功地加密了密码并毫无问题地使用网络服务。
my solution in python works like this:
character string of length 2:
public key with the rsa library:
I did this development to consume a web service which requires that an encrypted password be sent from a public key in XML format. In this way I managed to encrypt the password and consume the web service without problems.
由于 xmlseclibs 是 PHP,因此似乎可能需要另一个 PHP 解决方案。具体方法如下:
phpseclib 内置了对 XML 密钥、PuTTY 密钥和 PKCS1 密钥的支持。它会自动检测格式并加载它,如果没有提供参数,getPrivateKey / getPublicKey 将默认输出 PKCS1 格式的密钥。更多信息:
http://phpseclib.sourceforge.net/rsa/examples.html#convert< /a>
Since xmlseclibs is PHP it seems like another PHP solution might be desirable. Here's how:
phpseclib has built in support for XML keys, PuTTY keys and PKCS1 keys. It'll auto detect the format and load it and getPrivateKey / getPublicKey will output PKCS1 formatted keys by default if no parameters are provided. More info:
http://phpseclib.sourceforge.net/rsa/examples.html#convert
这是一个 ruby 版本脚本,用于将 RSA 转换为 pem,反之亦然。
确保 Ruby 已安装。
在终端中启动 irb
<前><代码>> IRB
将以下代码粘贴到 irb 控制台。
pem-> xml
这是将 PEM 转换为 xml 的示例
xml ->质子交换膜
这是将 xml 转换为 PEM 的示例
参考
Here is a ruby version script to convert RSA to pem, vice versa.
Make sure Ruby has been installed.
start irb in your terminal
Paste the following code to the irb console.
pem -> xml
Here is an example to convert PEM to xml
xml -> pem
Here is an example to convert xml to PEM
Reference
发现这个有用的在线工具RSA Key Converter,它支持
Found this useful online tool RSA Key Converter, which supports