javascript - 将加密 ECDH 公钥解析为 JWK 格式以与 WebCrypto 一起使用

标签 javascript encryption cryptography webcrypto-api jwk

我生成了一个 ECDH key 对,并从中获取了公钥。使用 Nodejs 和加密库。

const ecdh = crypto.createECDH('secp384r1');
ecdh.generateKeys();
const publicKey = ecdh.getPublicKey('hex'); 

我正在实现一个客户端库,以使用此公钥、ECDH 算法和 SubtleCrypto 来加密数据。来自 WebCrypto 的接口(interface)。

要完成此任务,我必须导入公钥(使用 nodejs crypto 生成),WebCrypto importKey method有一些格式选项可以做到这一点,但我可以让它与其中任何一个都不兼容。我注意到jwk比其他的更常用。

jwk 的示例是

{  
  kty: "EC",
  crv: "P-256",
  x: "kgR_PqO07L8sZOBbw6rvv7O_f7clqDeiE3WnMkb5EoI",
  y: "djI-XqCqSyO9GFk_QT_stROMCAROIvU8KOORBgQUemE",
  d: "5aPFSt0UFVXYGu-ZKyC9FQIUOAMmnjzdIwkxCMe3Iok",
  ext: true,
}

那么我如何将我的公钥解析为 jwk目的。我的公钥如下所示: 04f8b2a6e9d2ffa424c3e7b6addf23112153920fd0209390da460f99e03bf8665052e72df4a0b7927381f1b026c98a3a2b348fdd10969875e6b0e86cb1f093a5fc07e49fbbbf091922ce71af17f4a79de03f6069836a7143b137be34451f162235

最佳答案

我没有直接的答案给你,但你可能想看看 https://github.com/PeculiarVentures/node-webcrypto-ossl它为您提供了节点中的 webcrypto 接口(interface)。如果您不想直接使用它,您可以在其 JWK 处理中找到问题的答案。

关于javascript - 将加密 ECDH 公钥解析为 JWK 格式以与 WebCrypto 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135475/

相关文章:

javascript - ASP.net 身份从 javascript 发送 AntiForgeryToken

javascript - 使用扩展语法而不是 for 循环

javascript - 如何使用 jquery 专注于具有值的输入文本?

java - 如何正确解密 javax.crypto 加密字符串

c - 在将 fread() 转换为整数时,如果文件大小不是 4 字节的倍数会怎样?

javascript - Javascript 中匿名函数和传统函数在内存使用上有什么区别吗?如果是这样,如何?

php - Web 服务器即时解密?

php - 使用PHP安全地加密MySQL数据库中静态的客户详细信息

java - 在 Java 中使用身份验证标签的 AES GCM 实现

node.js - 为什么给定相同的输入, Node scrypt 哈希值相同?