4

我正在寻找一种在客户端解密 S/MIME 电子邮件的方法。我特别不希望客户端与服务器共享私钥,因此需要找到一种方法让客户端自己做所有事情。

我不需要支持多个浏览器,因此使用像window.Crypto 这样目前仅适用于 Mozilla Firefox的东西是完全可以的。这尤其是因为客户端上的浏览器将以某种方式需要访问客户端计算机上的证书存储(为了访问私钥 - 当然需要用户的批准)。

我只是不知道从哪里开始,因为几乎不可能找到任何示例或教程来做这样的事情,所以你可以分享的任何代码都将受到欢迎。

4

2 回答 2

0

我不熟悉 SMIME.p7m 文件,但听起来好像它们是 pkcs7 加密的。

您可能对nodejs cryptojs 模块有一些运气,它看起来将支持 pkcs7。

因为nodejs是 JavaScript,如果它不能开箱即用,那将是一个很好的起点。

通常构建 nodejs 模块是为了支持 nodejs 和浏览器的使用。

如果它不支持开箱即用的浏览器,那么<keygen>html5 标记及其相关功能(用于存储密钥等)可能会很有趣。

于 2014-05-10T16:54:13.037 回答
0

我们在这里使用 Web Crypto 在 Javascript 中加密/解密和签名/验证 S/MIME 消息的示例 - https://github.com/PeculiarVentures/pkijs-es6/tree/master/examples/

这种方法适用于浏览器和节点,如果在节点上使用 WebCrypto polyfill,例如 - https://github.com/PeculiarVentures/node-webcrypto-ossl

于 2016-12-09T08:00:12.300 回答