Question

Je dois écrire du code qui récupère les fichiers chiffrés par PGP à partir d'un emplacement FTP et les traite. Les fichiers seront cryptés avec ma clé publique (même si je n'en ai pas encore). De toute évidence, j'ai besoin d'une bibliothèque PGP que je peux utiliser à partir de Microsoft Access. Pouvez-vous en recommander un qui soit facile à utiliser?

Je recherche quelque chose qui n'exige pas une grande quantité de connaissances en matière d’ICP. Idéalement, quelque chose qui générera facilement la paire clé privée / clé unique, puis une routine simple de déchiffrement.

Était-ce utile?

La solution

Une solution en ligne de commande est bonne. Si votre base de données est une application interne qui ne doit pas être redistribuée, je peux recommander Gnu Privacy Guard . Cet outil basé sur la ligne de commande vous permettra de faire tout ce dont vous avez besoin en ce qui concerne le standard OpenPGP.

Dans Access, vous pouvez utiliser la commande Shell () dans une macro comme ceci:

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

Ceci exécutera l'outil de ligne de commande pour déchiffrer le fichier. Cette syntaxe utilise une version en texte brut de votre phrase secrète secrète. Ce n'est pas la solution la plus sécurisée mais acceptable si votre base de données est interne et utilisée uniquement par du personnel de confiance. GnuPG supporte d’autres techniques pour sécuriser la phrase secrète.

Autres conseils

PGP dispose d'une option en ligne de commande pour le déchiffrement des fichiers.

Nous avons un fichier batch qui effectue le déchiffrement en transmettant le nom du fichier à déchiffrer:

Fichier de commandes:

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

Nous appelons cela depuis un 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

J'espère que cela vous orientera dans une direction utile.

Vous pouvez utiliser OpenPGPBlackbox (édition ActiveX) pour cette

Stu ... J'ai déjà dû écrire un "Secure SMTP". serveur en Java ... Le moyen le plus simple et le plus rapide de procéder consiste à télécharger et / ou acheter PGP. Ils ont un SDK que vous pouvez utiliser pour accéder à tout ce que vous voulez.

Je devrais revenir en arrière pour voir si je devais écrire un wrapper COM ou s'il en avait déjà un. (J'ai écrit ce serveur SMTP il y a environ 10 ans). Quoi qu'il en soit, ne vous découragez pas. Il y a environ 5 ans, j'ai écrit une application complète basée sur PGP (basée sur le RFC openPGP) en C ++, mais le problème était que je n'étais PAS autorisé à utiliser les bibliothèques existantes. Alors j'ai dû écrire tout ça moi-même. Et j’ai utilisé GPG, OpenPGP et PGP pour les tests, etc ....

Je pourrais même vous aider à décoder ces informations dans VBA. Ce n’est pas impossible (cela peut être très lent, mais pas impossible), et je ne suis pas du genre à "cogner et exécuter des commandes cmdline pour que cela fonctionne comme cela pour vous, car cela vous ouvrira la voie à une sécurité sérieuse" risques, car la suggestion de hurcane (par exemple) entraînera l’affichage de votre phrase secrète dans des outils tels que ProcExp). La première étape consiste à apprendre comment fonctionne le PKE, etc. Ensuite, les étapes à suivre pour obtenir ce que vous voulez.

C’est quelque chose avec lequel je voudrais aider car je suis toujours capable d’écrire du code que tout le monde dit que c’est impossible. :) De plus, je possède le code source de l'application que j'ai écrite à cause de fusions, fermetures, etc ...

Il a été écrit à l'origine pour l'industrie du pétrole et du gaz, je sais donc que c'est sécurisé. Cela ne veut pas dire que je n’ai AUCUN défaut de sécurité dans le code, mais je pense qu’il est stable. Je sais que j'ai un problème avec mon code chinois Remainder Threory. Pour une raison quelconque, lorsque j'utilise ce raccourci, je ne peux pas décoder les données correctement, mais si j'utilise le code RSA "long way", ça marche ...

Maintenant, cette application n’a jamais été complètement finie, je ne supporte donc pas les paires de clés DSA, mais les paires de clés RSA avec SHA1, MD5, utilisant IDEA, AES (I THINK mon code 3DES ne fonctionne pas correctement, mais je l’ai peut-être corrigé depuis). Je n'ai pas encore implémenté la compression, etc ... Mais j'aimerais bien avoir une raison de revenir travailler sur ce code.

Je / pourrais / vous faire un objet COM que vous pouvez appeler depuis VBA en transmettant les données Base64 d'origine, avec les données de clé Base64 (ou un pointeur sur un fichier de clé sur le disque) et un mot de passe pour décoder les fichiers ....

Pensez-y ... faites le moi savoir ..

Au fil des années, j'ai collecté du code vbScript pour des tâches telles que MD5, SHA1, IDEA et d'autres routines de cryptage, mais je ne les ai pas écrites. Bon sang, vous pourriez probablement vous connecter à CryptoAPI de Microsoft et décomposer chaque action en deux parties essentielles tout en la faisant fonctionner. (Vous ne trouverez pas d’appel Micosoft CryptoAPI tel que "DecryptPGP ()" ... Tout doit être fait en morceaux).

Laisse-moi savoir si je peux aider.

Je chercherais un crypteur / décrypteur en ligne de commande et appellerais simplement l'exécutable depuis votre application Access, avec les bons paramètres.

À ma connaissance, il n’existe pas de chiffreur / décrypteur PGP dans VBA.

Je ne connais pas bien VBA pour Access, mais je pense que la meilleure solution (peut-être la plus simple) serait de faire appel à un utilitaire PGP en ligne de commande externe.

Il existe une DLL que vous pouvez appeler directement depuis votre application VBA sans devoir étendre un programme externe: CryptoCX . PGP a également une DLL que vous pouvez appeler.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top