有没有办法用 javascript 在客户端生成 RSA 密钥对?

Is there a way to generate RSA key pair client side with javascript?

我使用了 Cryptico 库,它工作正常,但是 Cryptico 的 public 密钥与 OpenSSL 不兼容(这意味着我不能用它来加密数据,例如 PHP) .我在问如何生成密钥对 客户端,其中 public 密钥 与 OpenSSL 兼容。目标是能够在 IOS、Android 或 PHP 上使用 public 密钥加密数据并在 Javascript 上解密(这意味着它是跨平台兼容的) ).

您可以在下面的link中使用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....');
      }