1

我们window.crypto.subtle.generateKey用来生成一个 RSA 密钥对。

我们如何使用 Web Crypto API 为私钥添加密码?

4

3 回答 3

3

我参加聚会有点晚了,但是wrapKey()不是您要找的吗?它在同一个 API 上,允许您以受密码保护的形式包装密钥,例如 pkcs8。

于 2017-04-04T13:13:16.930 回答
2

使用 WebCrypto 生成的密钥不受密码保护。

您可以导出密钥并构建支持加密的格式,例如 PEM 文件中的 pkcs8,但要做到这一点,需要使用额外的库。

于 2017-03-15T10:44:57.277 回答
1

@pedrofb 是对的。如果您想这样做是好是坏 PKCS8 是正确的格式,这里是一个可用于创建此类包的代码的链接 - https://github.com/PeculiarVentures/PKI.js/blob/5b9c35c154c48b232b45cc2a908c88e2f56a8447/ src/PKCS8ShroudedKeyBag.js

您可能还应该阅读以下内容:http ://unmitigatedrisk.com/?p=543 ,其中描述了一些与重要的密钥包相关的概念。

您可能还想研究在服务工作者中使用 webcrypto 并通过 PostMessage 公开接口以使操作发生。这与不可导出的密钥相结合,提供了一些防止任意使用密钥的保护,例如,攻击者只能做接口允许的事情。

于 2017-03-16T08:07:43.820 回答