Web Crypto API:如何将密码添加到私钥

时间:2017-03-15 10:32:39

标签: javascript webcryptoapi

我们使用window.crypto.subtle.generateKey生成RSA密钥对。

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

3 个答案:

答案 0 :(得分:2)

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

您可以导出密钥并构建支持加密的格式,例如PEM文件中的pkcs8,但要执行此操作,则需要使用其他库。

答案 1 :(得分:1)

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

您可能还应该阅读:http://unmitigatedrisk.com/?p=543,其中描述了与重要行李相关的一些概念。

您可能还希望在服务工作者中使用webcrypto并在PostMessage上公开接口以进行操作。这与不可导出的密钥相结合,可以防止任意使用密钥,例如攻击者只能执行接口允许的操作。

答案 2 :(得分:1)

我参加派对有点晚了,但是wrapKey()你找不到什么?它位于相同的API上,允许您将密钥包装在受密码保护的表单中,例如PKCS8。