如何将XML RSA密钥转换为PEM文件?
我有两个XML文件,结构如下: 我的钥匙如何将XML RSA密钥转换为PEM文件?,xml,security,rsa,pem,xmlseclibs,Xml,Security,Rsa,Pem,Xmlseclibs,我有两个XML文件,结构如下: 我的钥匙 <RSAKeyValue> <Modulus> ... </Modulus> <Exponent> ... </Exponent> <P> ... </P> <Q> ... </Q> <DP> ... </DP> <DQ> ... </DQ> <InverseQ>
<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
<P> ... </P>
<Q> ... </Q>
<DP> ... </DP>
<DQ> ... </DQ>
<InverseQ> ... </InverseQ>
<D> ... </D>
</RSAKeyValue>
<RSAKeyValue>
<Modulus> ... </Modulus>
<Exponent> ... </Exponent>
</RSAKeyValue>
...
...
...
...
...
...
...
公钥
<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表示,以便对内容进行加密和解密
作为一个加密新手,我不知道从哪里开始,粗略的谷歌搜索并没有发现任何特别明显的东西
谢谢 我找到了一个可以解决这个问题的方法。我花了好几个小时寻找完全相同的问题。此Java工具完成了任务:)
但是链接已经更改,现在可以从找到这个有用的在线工具,它支持
- XML->PEM
- PEM->XML
java XMLSec2PEM my.xml>my.pem
my.pem
org.bouncycastle.openssl.PEMReader.readObject()
返回null
:-(openssl pkcs8-topk8-通知pem-在my.pem中-流出pem-nocrypt-输出my.pkcs8
openssl pkcs8-通知pem-nocrypt-in my.pkcs8-out my.pkcs8.pem
my.pkcs8.pem
可以通过PEMReader
由于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密钥、PuTTY密钥和PKCS1密钥的支持。它将自动检测并加载格式,如果未提供参数,则默认情况下getPrivateKey/getPublicKey将输出PKCS1格式的密钥。详细信息:
xmlseclibs似乎有一个方法
XMLSecurityKey::convertRSA
,它接受一个模和一个指数,并将创建一个与PEM兼容的公钥。但是,它似乎没有任何方法来创建必要的私钥。在这方面有什么帮助吗?我相信密钥格式/表示来自永远不要使用PEM的在线工具r这类敏感信息。它只能用于公钥。它可以用于公开的私钥,也可以用于演示。链接已断开。上面的链接已更新。链接已断开。