微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决有没有办法用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 举报,一经查实,本站将立刻删除。