在JavaScript中生成RSA密钥对

B T*_*B T 11 javascript security encryption

我最近发现了这个RSA JavaScript库:http://www.ohdave.com/rsa/.但是,它需要预先生成密钥.以下是我的问题/问题:

  1. 我想在JavaScript中生成一个RSA密钥对(这样我每次想要一个新密钥对时都不必更改代码.)

  2. 虽然我理解如何使用它来发送安全数据,如果我没有弄错,这个库不能用于客户端从服务器接收安全数据(因为公共和私人指数,模数,传输简单 - 来自服务器的文本).我错了吗?

我喜欢对此进行一些讨论.我不是安全专家,但我对非对称加密非常掌握.

Tom*_*icz 3

这个问题大约 10 年前就被提出了,从那时起,很多事情都得到了改善。目前,大多数现代浏览器都具有Web Crypto API,该 API 能够生成强随机数,因此允许脚本生成加密密钥、签署数据、验证签名、加密和解密数据以及其他加密操作。

以下是来自上述 MDN 的示例代码:

let keyPair = window.crypto.subtle.generateKey(
  {
    name: "RSA-OAEP",
    modulusLength: 4096,
    publicExponent: new Uint8Array([1, 0, 1]),
    hash: "SHA-256"
  },
  true,
  ["encrypt", "decrypt"]
);
Run Code Online (Sandbox Code Playgroud)