Stu...我曾经不得不用 Java 编写一个“安全 SMTP”服务器...最简单、最快捷的方法是下载和/或购买 PGP。他们有一个 SDK,你可以用它来访问任何你想要的东西。
我必须回去看看我是否必须编写一个 COM 包装器,或者他们是否已经有了。 (大约 10 年前我写了这个 SMTP 服务器)。无论如何,不要气馁。大约 5 年前,我用 C++ 编写了一个完整的基于 PGP 的应用程序(基于 openPGP RFC),但问题是,我不允许使用任何现有的库。所以我不得不自己写所有这些东西。而且,我使用 GPG、OpenPGP 和 PGP 进行测试等......
所以,我什至可以为您提供有关如何在 VBA 中解码这些内容的帮助。这不是不可能的,(它可能慢得要命,但并非不可能),而且我不是一个“为你掏出并运行 cmdline 的东西来为你做这样的工作,因为它会让你面临一些严重的安全风险, 因为 hurcane 的建议(例如)会导致您的密码短语显示给 ProcExp 等工具)。第一步是了解 PKE 的工作原理等。然后,您需要执行哪些步骤才能获得所需的内容。
这是我有兴趣提供帮助的事情,因为我总是编写每个人都说无法完成的代码。 :) 另外,由于合并、关闭等原因,我拥有我编写的应用程序的源代码......
它最初是为石油和天然气行业编写的,所以我知道它是安全的。这并不是说我的代码中没有ANY 安全漏洞,但我认为它是稳定的。我知道我的中文 Remainder Threory 代码有问题。由于某种原因,当我使用该快捷方式时,我无法正确解码数据,但如果我使用 RSA “long way”它可以工作...
现在,这个应用程序从未完全完成,所以我不支持 DSA 密钥对之类的东西,但我支持 RSA 密钥对,使用 SHA1、MD5、使用 IDEA、AES,(我 THINK 我的 3DES 代码无法正常工作,但我可能已经修复了这个问题)。我还没有实现压缩,等等……但是,我很想有理由回去重新处理这段代码。
我 /COULD/ 为您创建一个 COM 对象,您可以从 VBA 调用该对象,将原始 Base64 数据以及 Base64 密钥数据(或指向磁盘上的密钥文件的指针)以及用于解码文件的密码....
考虑一下...告诉我..
多年来,我收集了用于执行 MD5、SHA1、IDEA 和其他加密例程之类的 vbScript 代码,但我没有编写它们。天哪,您可能只需要与 Microsoft 的 CryptoAPI 交互,然后将每个操作分解为其核心部分,然后仍然可以正常工作。 (你不会找到像“DecryptPGP()”这样的 Micosoft CryptoAPI 调用......这一切都必须分块完成。
如果我能帮忙,请告诉我。