首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS SubtleCrypto - RSA密钥的多重keyUsage

NodeJS SubtleCrypto - RSA密钥的多重keyUsage
EN

Stack Overflow用户
提问于 2022-01-25 21:27:13
回答 1查看 166关注 0票数 0

我很抱歉这个问题的标题含糊不清,我不太清楚该怎么表达。

我使用SubtleCrypto在NodeJS中生成了一个公钥和私钥,如下所示:

代码语言:javascript
复制
const { publicKey, privateKey } = await  subtle.generateKey({
          name: 'RSA-OAEP',
          4096,
          new Uint8Array([1, 0, 1]),
          'SHA-256',
 }, true, ['encrypt', 'decrypt']);

这对于一个用例来说是完美的:

公钥加密,私钥解密。

但是,我希望在我的项目中实现RSA的方式如下:

  1. 客户端向服务器请求公钥
  2. 客户端使用公钥加密有效载荷
  3. 服务器使用私钥
  4. 服务器加密响应有效载荷使用私钥

H 110客户端用公钥解密响应有效载荷H 211G 212

当我尝试执行Step 4时,遇到了以下错误:

代码语言:javascript
复制
The requested operation is not valid for the provided key 

是否有一种方法可以指定每个键可用于Encrypt & Decrypt

另外,如果我的实现是完全错误的,我很抱歉。

EN

回答 1

Stack Overflow用户

发布于 2022-01-25 22:00:03

正如您所描述的,步骤4是一个签名操作。签名与加密数据非常不同。为此,客户机和服务器都需要自己的键盘:

代码语言:javascript
复制
client: client public key & client private key
server: server public key & server private key

  1. 客户端上传其客户端公钥
  2. 客户端向服务器请求服务器公钥
  3. 客户端使用服务器公钥对有效载荷进行加密
  4. 服务器使用服务器私钥

H 110>服务器加密响应有效载荷使用客户端公钥H 211>H 112客户端使用客户端私钥解密响应有效载荷<>H 213/代码>G 214

除了使用RSA加密和解密大量数据可能带来的巨大计算工作量外,这里的威胁模型是什么,您想实现什么?如果您真的想将它部署到生产中,您应该非常小心,因为您似乎对这个主题相当缺乏经验(无意冒犯)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70855902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档