如何将XML RSA键转换为PEM文件?
-
29-09-2019 - |
题
我有两个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>
我正在使用 xmlseclibs
罗伯特·理查兹(Robert Richards)的图书馆,需要对密钥表示.PEM代表,以加密和解密事物。
作为加密新手,我不确定从哪里开始,粗略的Google搜索并未透露任何特别明显的东西...
谢谢!
解决方案
我找到了一个 Java实用程序 那可以做到。
其他提示
对于那些希望由此产生的PEM可以阅读的人 充气城堡:
- 采用 XMLSEC2PEM 获取PEM文件的工具
- 将PEM转换为PKCS8和后背(!)
我很高兴的最终解决方案:
java XMLSec2PEM my.xml > my.pem
- 编辑
my.pem
手动一点 org.bouncycastle.openssl.PEMReader.readObject()
返回null
:-(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
可以阅读PEMReader
我正在寻找完全相同的问题。这个Java工具完成了这项工作:)
但是链接已经改变,现在可以从 这里
找到了这个有用的在线工具 RSA键转换器, ,支持
- XML-> PEM
- PEM-> XML
由于XMLSeclibs是PHP,因此似乎是另一种PHP解决方案。就是这样:
<?php
include('Crypt/RSA.php');
$rsa = new Crypt_RSA();
$rsa->loadKey('<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
<P> ... </P>
<Q> ... </Q>
<DP> ... </DP>
<DQ> ... </DQ>
<InverseQ> ... </InverseQ>
<D> ... </D>
</RSAKeyValue>');
$privatekey = $rsa->getPrivateKey();
$publickey = $rsa->getPublicKey();
?>
phpseclib支持XML键,腻子密钥和PKCS1密钥。它将自动检测格式并加载它,并且getPrivateKey / getPublicKey将默认情况下输出PKCS1格式的键,如果没有提供参数。更多信息:
不隶属于 StackOverflow