我使用了 Cryptico 库,它工作正常,但是来自 Cryptico 的公钥与 OpenSSL 不兼容(这意味着我不能用它来加密数据,例如 PHP)。我在问如何生成与公钥兼容的密钥对客户端OpenSSL 。目标是能够在 IOS、Android 或 PHP 上使用公钥加密数据并在 Javascript 上解密(这意味着它兼容跨平台)。
问问题
410 次
1 回答
1
您可以在以下链接中使用 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....');
}
于 2021-06-09T20:45:38.203 回答