Javascript 公钥/私钥加密

Tom*_*s M 5 javascript encryption

我想在javascript中生成一个公钥/私钥对,并使用公钥来加密消息和私钥来解密消息。

与外部库相比,我更喜欢本机浏览器支持。我怎样才能在 JavaScript 中做到这一点?

现代浏览器实现window.crypto.subtle.generateKey. 我可以用它来生成 ECDSA 私钥/公钥来签署/验证消息,这是有效的。但是我找不到如何使用它来生成公钥/私钥来加密/解密的方法。如果我为推荐的 AES-GCM 算法尝试 generateKey,它只会生成一个 cryptoKey,它可能可用于加密和解密。但我更喜欢得到一个密钥对(publib/private 密钥),而不仅仅是一个单一的密钥。有什么建议?

该表列出了当前支持的方法,但似乎没有一种绿色算法是我需要的:https : //diafygi.github.io/webcrypto-examples/

Maa*_*wes 0

幸运的是,您指向的页面显示支持 ECDH(包括 ECDH 密钥对生成)。这可以用来实现ECIES加密方案。然后,您可以使用原始位作为原始 AES 密钥并将其用于 AES-GCM 模式。

安全性当然取决于系统,而 Java Script 加密是出了名的难以正确执行。这种方案只能在 TLS 之外使用,而且即使如此也必须格外小心。