从Cryptico.js保存RSA密钥对象

Save RSA Key object from Cryptico.js

本文关键字:密钥 密钥对 对象 RSA 保存 Cryptico js      更新时间:2023-09-26

我正在努力发现如何将javascript对象转换为某个变量(数组?)并使用如下代码保存它:

function onDownload() {
    document.location = 'data:Application/octet-stream,' +
                         encodeURIComponent(RsaKey);
}

为什么?

库cryptico (文档:github)为我提供了一个易于使用的RSA界面。但是当生成的密钥对是一个对象时,我的噩梦来了。我不知道如何将此对象从客户端的浏览器导出到文件中以供以后使用。密钥的公共部分,可以通过函数转换为字符串

公钥字符串

但私人部分,在物体内部。我阅读了有关RSA算法的信息,并看到"d"在私钥中很重要,而在rsa内部的密钥生成函数中,我有"d.js

        this.d = ee.modInverse(phi);

我试图获取此值并放入字符串中,但没有奏效。不知道还能做什么。感谢任何帮助。

如果您使用的是cryptico.js可以使用rsa.js和jsbn.js并从存储库(https://github.com/wwwtyro/cryptico)添加到您的项目中。

并尝试这样做以保存在本地存储上:

localStorage["strPrivateKey"] = JSON.stringify(RSAKey.toJSON());

并尝试这样做以取回密钥:

var key = RSAParse(localStorage["strPrivateKey"]);

如果由于某种原因 RSAParse() 不在 rsa 上.js您可以添加:

function RSAParse(rsaString) {
    var json = JSON.parse(rsaString);
    var rsa = new RSAKey();
    rsa.setPrivateEx(json.n, json.e, json.d, json.p, json.q, json.dmp1, json.dmq1, json.coeff);
    return rsa;
}