如何将RSA PlblicKey XML转换为PEM格式

时间:2017-08-15 06:04:16

标签: javascript xml rsa pem

我通过httprequest

从C#服务器收到RSA密钥 但是这么多加密lib需要PEM格式。

我在这个

找到了解决方案 XML to PEM in Node.js

但我不能在我的Javscript H5项目中使用它, 有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

您的XML似乎是一种专有格式

<RSAKeyValue> 
    <Modulus>1znidPBIcMcO7K/53tkTSyKqxlG5Mcws8kVtijS4tyEU4W/FEVWYpOtv+Stnb4Vt</Modulus>
    <Exponent>AQAB</Exponent>
</RSAKeyValue>

您需要一个加密库,如forge,以便从模数和指数构建RSA公钥。根据此thread ,您可以使用与此类似的代码

// parse XML
var rsaKeyValue = ...

var BigInteger = forge.jsbn.BigInteger;
function parseBigInteger(b64) {
     return new BigInteger(forge.util.createBuffer(forge.util.decode64(b64)).toHex(), 16);
 }

 //Create a Forge public key from modulus and exponent
 var publicKey = forge.pki.setRsaPublicKey(
       parseBigInteger(rsaKeyValue.Modulus), // n
       parseBigInteger(rsaKeyValue.Exponent)); // e

 // convert a Forge public key to PEM-format
 var pem = forge.pki.publicKeyToPem(publicKey);