如何将RSA密钥号转换为OpenSSL兼容密钥?

时间:2010-08-27 12:33:27

标签: javascript openssl rsa pidcrypt

我希望能够仅使用javascript生成私有/公共RSA密钥...

到目前为止,我找到了http://www.hanewin.net/encrypt/rsa/rsa.htm,它包含了我找到的唯一一个Javascript RSA密钥生成器。我创建了包装器(修改了演示页面中的代码(参见链接)),这里是密钥的代码:

function genKeys() {
 rsaKeys(1024);
 var p=rsa_p;
 var q=rsa_q;
 var d=rsa_d;
 var u=rsa_u;
 var e=rsa_e;
 var pq=rsa_pq;

 return {"e": e, "p": p, "q": q, "pq": pq, "d": d, "u": u};
}

问题在于输出是以实际数字(指数,模数等)给出的,但我需要OpenSSL格式的密钥(base64编码的东西)。有人能告诉我OpenSSL密钥数据的格式是什么,甚至更好 - 如何将使用该站点的代码生成的密钥转换为OpenSSL密钥?

我想将结果与pidcrypt(一个js加密库)和ruby / openssl一起使用......

非常感谢您的任何建议......

2 个答案:

答案 0 :(得分:1)

OpenSSL公钥格式由PKCS#1定义。 Base64编码版本是PEM格式文件,它是Base64编码的ASN.1 BER格式。

ASN.1并不是一个特别好的格式,但应该有足够的肘部油脂......

答案 1 :(得分:1)

查看JavaScript opensource Forge项目。它有生成RSA密钥并将它们导出到PEM的方法(您正在谈论的OpenSSL使用的base64编码的DER格式)。

http://github.com/digitalbazaar/forge/blob/master/README