【问题标题】:Is there a way to generate RSA key pair client side with javascript?有没有办法用 javascript 生成 RSA 密钥对客户端?
【发布时间】:2021-08-26 17:53:09
【问题描述】:

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

【问题讨论】:

    标签: javascript cryptography rsa public-key cryptico


    【解决方案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....');
          }
    

    【讨论】:

    • 谢谢!我也可以使用 (var crypt = new JSEncrypt({default_key_size: 2048}); var PublicPrivateKey = {PublicKey: crypt.getPublicKey(), PrivateKey:crypt.getPrivateKey()};) 来生成密钥对。
    猜你喜欢
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多