我正在努力发现如何将javascript对象转换为某个变量(数组?)并使用以下代码保存它:
function onDownload() {
document.location = 'data:Application/octet-stream,' +
encodeURIComponent(RsaKey);
}
为什么吗
库cryptico(文档:github)为我提供了一个易于使用的RSA接口。但是当我生成的密钥对是一个对象时,我的梦魇就来了。我不知道如何将此对象从客户端的浏览器导出到文件中,以供日后使用。键的公共部分可以通过函数
转换为字符串publicKeyString
但私有部分是在对象内部。我读到了RSA算法并发现“d”是私钥中最重要的,我在密钥gen函数中有“d”,在rsa.js中
this.d = ee.modInverse(phi);
我试图获取此值并放入一个字符串,但没有奏效。不知道还能做什么。感谢任何帮助。
答案 0 :(得分:1)
如果您使用的是cryptico.js,可以使用rsa.js和jsbn.js,并从存储库(https://github.com/wwwtyro/cryptico)添加到您的项目中。
尝试将其保存在localStorage上:
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;
}