Javascript 从Cryptico.js保存RSA密钥对象

Javascript 从Cryptico.js保存RSA密钥对象,javascript,cryptico,Javascript,Cryptico,我正在努力探索如何将javascript对象转换为某个变量(数组?)并用如下代码保存它: function onDownload() { document.location = 'data:Application/octet-stream,' + encodeURIComponent(RsaKey); } 为什么? cryptico库(文档:)为我提供了一个易于使用的RSA接口。但当生成的密钥对是一个对象时,我的噩梦就来了。我不知道如何

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

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

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

publicKeyString

但是私有部分,在对象内部。我阅读了RSA算法,发现“d”是私钥中最重要的,我在RSA.js中的key gen函数中有“d”


我试图获取这个值并将其放入字符串中,但没有成功。不知道还能做什么。感谢您的帮助。

如果您正在使用cryptico.js,可以使用rsa.js和jsbn.js,并从存储库()添加到您的项目中

并尝试在localStorage上保存:

localStorage["strPrivateKey"] = JSON.stringify(RSAKey.toJSON());
并尝试此操作以取回钥匙:

var key = RSAParse(localStorage["strPrivateKey"]);
如果出于某种原因rsapase()不在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;
}

您可以使用“JSON.stringify(obj);”将整个对象保存为可读的JSON字符串。这就是你想要的吗?我对javascript知之甚少,对JSON一无所知。如果可能的话,我更喜欢纯javascript解决方案。我不知道最好的方法是把整个对象转换成字符串。我希望只保存私钥部分。。。
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;
}