如何解决有没有办法用javascript生成RSA密钥对客户端?
我使用了 Cryptico 库并且它工作正常,但是来自 Cryptico 的公钥与 OpenSSL 不兼容(这意味着我无法使用它来以 PHP 加密数据为例)。我在问如何生成密钥对客户端,其中公钥与 OpenSSL 兼容。目标是能够在 IOS、Android 或 PHP 上使用公钥对数据进行加密,并在 Javascript 上对其进行解密(这意味着它可以跨平台兼容)。
解决方法
您可以在以下链接中使用 jsbn 库: http://www-cs-students.stanford.edu/~tjw/jsbn/ 你可以在这里看到演示: http://www-cs-students.stanford.edu/~tjw/jsbn/rsa2.html 这是您可能找到的最受欢迎的库,您有机会根据您的要求对其进行自定义。 此外,您还有 jsencrypt 的另一个选项,可在此处获得: https://github.com/travist/jsencrypt 它也与 openssl 兼容。
// Encrypt with the public key...
var encrypt = new JSEncrypt();
encrypt.setPublicKey($('#pubkey').val());
var encrypted = encrypt.encrypt($('#input').val());
// Decrypt with the private key...
var decrypt = new JSEncrypt();
decrypt.setPrivateKey($('#privkey').val());
var uncrypted = decrypt.decrypt(encrypted);
// Now a simple check to see if the round-trip worked.
if (uncrypted == $('#input').val()) {
alert('It works!!!');
}
else {
alert('Something went wrong....');
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。