我正在寻找一种在客户端解密 S/MIME 电子邮件的方法。我特别不希望客户端与服务器共享私钥,因此需要找到一种方法让客户端自行完成所有操作。
我不需要支持多种浏览器,所以使用类似 window.Crypto that currently works only with Mozilla Firefox 的东西完全没问题。这尤其是因为客户端上的浏览器将以某种方式需要访问客户端计算机上的证书存储(为了访问私钥 - 当然需要用户的批准)。
我只是迷失了从哪里开始,因为几乎不可能找到任何关于做这样的事情的例子或教程,所以我们非常欢迎您分享任何代码。
最佳答案
我不太熟悉 SMIME.p7m 文件,但听起来好像它们是 pkcs7 加密的。
您可能会遇到 nodejs cryptojs module 的运气看起来它将支持 pkcs7。
因为 nodejs是 JavaScript,如果它不能开箱即用,那将是一个很好的起点。
通常构建 nodejs 模块是为了支持 nodejs 和浏览器的使用。
如果它不支持开箱即用的浏览器, <keygen>
html5 tag and it's related features (用于存储 key 等)可能会引起兴趣。
关于用于解密 SMIME.p7m 文件的 Javascript 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23452510/