我需要编写代码,拿起PGP加密的文件从一个FTP位置和进程。该文件将加密的用我的公用钥匙(不,我有一个)。显然,我需要一个PGP库,我可以用从在微软存取。你能推荐一个容易使用?

我在寻找的东西,这并不需要大量的PKI知识。理想的是,这将很容易产生一个关闭的私人/公共密钥对,然后有一个简单的例行程序进行解密。

有帮助吗?

解决方案

命令行解决方案很好。如果您的数据库是内部应用程序,不能重新分发,我可以推荐 Gnu Privacy Guard 。这个基于命令行的工具将允许您执行与OpenPGP标准相关的任何操作。

在Access中,您可以在宏中使用Shell()命令,如下所示:

Public Sub DecryptFile(ByVal FileName As String)
  Dim strCommand As String
  strCommand = "C:\Program Files\GNU\GnuPG\gpg.exe " _
  & "--batch --passphrase ""My PassPhrase that I used""" & FileName
  Shell strCommand, vbNormalFocus
End Sub

这将运行命令行工具来解密文件。此语法使用您的秘密密码的纯文本版本。这不是最安全的解决方案,但如果您的数据库是内部数据库且仅供受信任的人员使用,则可以接受。 GnuPG支持其他技术来保护密码。

其他提示

PGP有一个用于解密文件的命令行选项。

我们有一个批处理文件进行解密,传入要解密的文件名:

批处理文件:

"C:\Program Files\Network Associates\PGPNT\pgp" +FORCE %1 -z *password* 

我们从VBS那里打电话:

  Command = "decrypt.bat """ & FolderName & FileName & """"

  'Executes the command script.
  Set objShell = WScript.CreateObject ("WSCript.shell")
  Command = "cmd /c " & Command
  objShell.run Command, 1, True

希望指出你有用的方向。

您可以使用 OpenPGPBlackbox(ActiveX edition)进行此操作

斯图...我曾经写一个"安全SMTP"服务器在Java...最简单和快捷的方式做到这一点的是以下载,和/或购买PGP.他们有一个SDK,可用于访问在任何你想要的东西。

我必须回去看看如果我不得不写COM包装,或者如果他们已经有一个。(我写了这个SMTP server约10年前)。不管怎么说,不要气馁。大约5年前,我写了一整个PGP基础的应用程序(根据openPGP RFC)在C++,但抓的是我 允许使用任何现有的图书馆。所以我不得不写所有的东西我自己。而且,我用的全球公益,OpenPGP,并PGP进行测试,等等。

因此,我甚至可以提供的帮助你在如何解码这个东西在VBA。这不是不可能的,(它可以是缓慢的地狱,但不是不可能的),和我不是一个"空壳和运行命令行事要做的工作就像这个给你,因为它会打开你一些严重的安全风险,因为hurcane的建议(例如)会导致您的密码是显示给工具,如ProcExp).第一步是学习如何者踏的工作,等等。然后,该步骤,你需要做得到你想要什么。

这是什么东西我会感兴趣帮助,因为我总是一个编写代码,每个人都说不能这样做。:)另外,我自己的源代码的应用程序,我写了,因为合并、封闭,等等。

它最初是用于石油和天然气行业,所以我知道它是安全的。这并不是说我没有 任何 安全缺陷的编码,但我认为这是稳定的。我知道我有一个问题与我的中国其余Threory码..由于某些原因,当我使用这短短的一切,我不能译码的数据正确,但是,如果我用的是RSA"很长的路要走"它的作品...

现在,这项申请从未完全完成,所以我不支持的东西喜欢每日生活津贴的钥匙-对,但我支持RSA密钥对,SHA1,MD5,使用的想法,AES(I 想想 我3DES码不正常工作,但我可以有固定的,因为).我没有执行压缩,还没有,等等...但是,我的爱的理由,以回去工作,这个代码。

I/能/让你COM对象的你可以叫从VBA通过的原Base64数据,随着Base64关键数据,(或指针的一个关键文件的磁盘上),以及passpsshrase解码文件。...

想一想...让我知道..

多年来,我已经收集vbScript码做的事情就像MD5,SHA1,想法和其他加密程序,但我没有写他们的。地狱的,你很可能只是口与微软的CryptoAPI,并打破每个行动到它的核心部分和仍然得到它的工作。(你不会找到一个Micosoft CryptoAPI呼,如"DecryptPGP()"...它们都有工作要做大块).

让我知道如果我可以提供帮助。

我会寻找命令行加密器/解密器,只需使用正确的参数从Access应用程序中调用exe。

我知道VBA中没有PGP加密器/解密器。

我不熟悉VBA for Access,但我认为最好的解决方案(也许最简单)就是运行外部命令行PGP实用程序。

您可以直接从VBA应用程序调用DLL,而无需跨越外部程序: CryptoCX 。 PGP还有一个你可以调用的DLL。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top