FTP ロケーションから PGP で暗号化されたファイルを取得して処理するコードを作成する必要があります。ファイルは私の公開鍵で暗号化されます (私はまだ公開鍵を持っていません)。明らかに、Microsoft Access 内から使用できる PGP ライブラリが必要です。使いやすいおすすめを教えてください。
大量の PKI の知識を必要としないものを探しています。理想的には、1 回限りの秘密鍵と公開鍵のペアを簡単に生成し、復号化のための単純なルーチンを備えたものです。
FTP ロケーションから PGP で暗号化されたファイルを取得して処理するコードを作成する必要があります。ファイルは私の公開鍵で暗号化されます (私はまだ公開鍵を持っていません)。明らかに、Microsoft Access 内から使用できる PGP ライブラリが必要です。使いやすいおすすめを教えてください。
大量の PKI の知識を必要としないものを探しています。理想的には、1 回限りの秘密鍵と公開鍵のペアを簡単に生成し、復号化のための単純なルーチンを備えたものです。
コマンドラインソリューションが適しています。データベースが内部アプリケーションであり、再配布されない場合は、GnuPrivacyGuardをお勧めします。このコマンドラインベースのツールを使用すると、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は、パスフレーズを保護するための他の手法をサポートしています。
Stu... Java で "Secure SMTP" サーバーを作成する必要があったことがあります... これを行う最も簡単で迅速な方法は、PGP をダウンロードまたは購入することです。それらには、必要なものにアクセスするために使用できる SDK があります。
戻って、COM ラッパーを作成する必要があるかどうか、または既に存在するかどうかを確認する必要がありました。(私は約 10 年前にこの SMTP サーバーを作成しました)。とにかく気を抜くな。約 5 年前、私は PGP ベースのアプリケーション全体 (openPGP RFC に基づく) を C++ で作成しましたが、問題は、既存のライブラリを使用することが許可されていないことでした。だから私は自分ですべてのものを書かなければなりませんでした。そして、GPG、OpenPGP、および PGP をテストなどに使用しました...
そのため、VBA でこのようなものをデコードする方法についてもお手伝いできます。それは不可能ではありません (非常に遅いかもしれませんが、不可能ではありません)。私は「このような作業を実行するためにシェルを起動して cmdline を実行する人ではありません。深刻なセキュリティ リスクにさらされる可能性があるためです。 , hurcane の提案 (たとえば) により、パスフレーズが ProcExp などのツールに表示されるため. 最初のステップは、PKE の仕組みなどを学習することです. 次に、必要なものを取得するために必要な手順.
私はいつも、誰もができないと言うコードを書く人なので、これは私が手助けしたいと思っていることです. :) さらに、合併や閉鎖などのために、私が書いたアプリのソースコードを所有しています...
もともとは石油およびガス業界向けに作成されたものなので、安全であることはわかっています。コードにセキュリティ上の欠陥がまったくないというわけではありませんが、安定していると思います。中国のRemainder Threoryコードに問題があることは知っています.何らかの理由でそのショートカットを使用すると、データを正しくデコードできませんが、RSAを「長い道のり」で使用すると機能します...
さて、このアプリケーションは完全には完成していないので、DSA キー ペアなどはサポートしていませんが、SHA1、MD5、IDEA、AES を使用した RSA キー ペアはサポートしています (私の3DESコードは正しく動作しないと思います)。 、しかし、それ以来修正した可能性があります)。私はまだ圧縮などを実装していませんでした...しかし、戻ってこのコードに再び取り組む理由が欲しいです。
元の Base64 データを Base64 キー データ (またはディスク上のキー ファイルへのポインター) と共に渡す VBA から呼び出すことができる COM オブジェクトを /COULD/ 作成し、ファイルをデコードするための passpsshrase を作成します... .
考えてみてください...教えてください..
何年にもわたって、MD5、SHA1、IDEA、およびその他の暗号化ルーチンなどを実行するための vbScript コードを収集してきましたが、それらを作成したことはありません。おそらく、Microsoft の CryptoAPI とやり取りして、各アクションをコア部分に分解し、それでも機能させることができます。(「DecryptPGP()」のような Micosoft CryptoAPI 呼び出しは見つかりません...すべてチャンクで実行する必要があります)。
私がお手伝いできるかどうか教えてください。
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
それがあなたを有用な方向に向けることを願っています。
外部プログラムにまたがることなく、VBA アプリケーションから直接呼び出すことができる DLL があります: CryptoCX。PGP には、呼び出すことができる DLL もあります。
コマンド ラインの暗号化/復号化ツールを探して、適切なパラメーターを使用して、Access アプリケーション内から exe を呼び出すだけです。
私が知っている VBA には PGP 暗号化/復号化機能はありません。
私は VBA for Access に精通していませんが、最善の解決策 (おそらく最も簡単な方法) は、外部コマンドライン PGP ユーティリティを実行することだと思います。