Web Crypto API:如何将密码添加到私钥
Web Crypto API: how to add passphrase to private key
我们使用 window.crypto.subtle.generateKey
生成 RSA 密钥对。
我们如何使用 Web Crypto API 为私钥添加密码?
使用 WebCrypto 生成的密钥不受密码保护。
您可以导出密钥并构建支持加密的格式,例如 PEM 文件中的 pkcs8,但为此需要使用额外的库。
@pedrofb 是对的。如果你想这样做是好是坏 PKCS8 是正确的格式,这里有一个 link 代码可以用来创建这样一个包 - https://github.com/PeculiarVentures/PKI.js/blob/5b9c35c154c48b232b45cc2a908c88e2f56a8447/src/PKCS8ShroudedKeyBag.js
您可能还应该阅读以下内容:http://unmitigatedrisk.com/?p=543,其中描述了一些与 material.
钥匙包相关的概念
您可能还想研究在 service worker 中使用 webcrypto 并通过 PostMessage 公开接口以使操作发生。这与不可导出的密钥相结合,提供了一些防止任意使用密钥的保护,例如,攻击者只能执行接口允许的操作。
我来晚了一点,但 wrapKey() 不是您要找的吗?它在同一个 API 上,并允许您将密钥包装在受密码保护的形式中,例如pkcs8.
我们使用 window.crypto.subtle.generateKey
生成 RSA 密钥对。
我们如何使用 Web Crypto API 为私钥添加密码?
使用 WebCrypto 生成的密钥不受密码保护。
您可以导出密钥并构建支持加密的格式,例如 PEM 文件中的 pkcs8,但为此需要使用额外的库。
@pedrofb 是对的。如果你想这样做是好是坏 PKCS8 是正确的格式,这里有一个 link 代码可以用来创建这样一个包 - https://github.com/PeculiarVentures/PKI.js/blob/5b9c35c154c48b232b45cc2a908c88e2f56a8447/src/PKCS8ShroudedKeyBag.js
您可能还应该阅读以下内容:http://unmitigatedrisk.com/?p=543,其中描述了一些与 material.
钥匙包相关的概念您可能还想研究在 service worker 中使用 webcrypto 并通过 PostMessage 公开接口以使操作发生。这与不可导出的密钥相结合,提供了一些防止任意使用密钥的保护,例如,攻击者只能执行接口允许的操作。
我来晚了一点,但 wrapKey() 不是您要找的吗?它在同一个 API 上,并允许您将密钥包装在受密码保护的形式中,例如pkcs8.