1

我希望能够仅使用 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 一起使用...

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

4

2 回答 2

1

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

ASN.1 不是一个特别好处理的格式,但它应该可以用足够的肘部油脂......

于 2010-08-30T06:32:22.843 回答
1

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

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

于 2010-10-06T18:39:45.783 回答