我通过httprequest
从C#服务器收到RSA密钥 但是这么多加密lib需要PEM格式。
我在这个
找到了解决方案 XML to PEM in Node.js
但我不能在我的Javscript H5项目中使用它, 有其他解决方案吗?
答案 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);