Pregunta

Necesito escribir un código que recoja los archivos cifrados con PGP de una ubicación FTP y los procese. Los archivos se cifrarán con mi clave pública (no es que todavía tenga una). Obviamente, necesito una biblioteca PGP que pueda usar desde Microsoft Access. ¿Puedes recomendar uno que sea fácil de usar?

Estoy buscando algo que no requiera una gran cantidad de conocimiento de PKI. Idealmente, algo que genere fácilmente el par de claves privadas / públicas únicas, y luego tenga una rutina simple para el descifrado.

¿Fue útil?

Solución

Una solución de línea de comando es buena. Si su base de datos es una aplicación interna, no se debe redistribuir, puedo recomendar Gnu Privacy Guard . Esta herramienta basada en la línea de comandos le permitirá hacer todo lo que necesite con respecto al estándar OpenPGP.

En Access, puede usar el comando Shell () en una macro como esta:

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

Esto ejecutará la herramienta de línea de comandos para descifrar el archivo. Esta sintaxis utiliza una versión de texto simple de su frase secreta. Esta no es la solución más segura, pero es aceptable si su base de datos es interna y solo la utiliza personal de confianza. GnuPG es compatible con otras técnicas para asegurar la frase de contraseña.

Otros consejos

PGP tiene una opción de línea de comandos para descifrar archivos.

Tenemos un archivo por lotes que realiza el descifrado, pasando el nombre del archivo a descifrar:

Archivo por lotes:

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

Nosotros lo llamamos desde 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

Espero que te indique una dirección útil.

Stu ... Una vez tuve que escribir un " Secure SMTP " servidor en Java ... La forma más fácil y rápida de hacerlo es descargar y / o comprar PGP. Tienen un SDK que puedes usar para acceder a cualquier cosa que desees.

Tendría que regresar y ver si tenía que escribir un contenedor COM, o si ya tenían uno. (Escribí este servidor SMTP hace unos 10 años). De todos modos, no te desanimes. Hace aproximadamente 5 años, escribí una aplicación completa basada en PGP (basada en el RFC de openPGP) en C ++, pero el problema era que NO me permitían usar cualquier biblioteca existente. Así que tuve que escribir todo eso yo mismo. Y utilicé GPG, OpenPGP y PGP para realizar pruebas, etc. ...

Por lo tanto, incluso puedo brindarte ayuda sobre cómo descodificar esto en VBA. No es imposible (puede ser lento como el infierno, pero no imposible), y NO soy alguien que "pague y ejecute el comando cmdline para que trabaje de esta manera para usted, ya que lo abrirá a cierta seguridad SERIA" riesgos, como la sugerencia de huracán (por ejemplo) hará que su frase de contraseña se muestre en herramientas como ProcExp). El primer paso es aprender cómo funciona PKE, etc. Luego, los pasos que debe seguir para obtener lo que desea.

Esto es algo en lo que me interesaría ayudar, ya que siempre soy uno para escribir código que todos dicen que no se puede hacer. :) Además, soy dueño del código fuente de la aplicación que escribí, debido a fusiones, cierres, etc. ...

Fue escrito originalmente para la industria del petróleo y el gas, por lo que sé que es seguro. Eso no quiere decir que no tenga fallas de seguridad ANY en el código, pero creo que es estable. Sé que tengo un problema con mi código de resto del chino. Por alguna razón, cuando uso ese atajo, no puedo decodificar los datos correctamente, pero si uso el RSA " ruta larga " funciona ...

Ahora, esta aplicación nunca se finalizó completamente, así que no admito los pares de claves DSA, pero sí los pares de claves RSA, con SHA1, MD5, usando IDEA, AES, (I THINK mi código 3DES no funciona correctamente, pero es posible que haya corregido eso desde entonces. Todavía no implementé la compresión, etc. Pero me encantaría tener una razón para volver y trabajar en este código nuevamente.

I / COULD / te hace un objeto COM al que podrías llamar desde VBA pasando los datos Base64 originales, junto con los datos clave Base64 (o un puntero a un archivo clave en el disco), y una frase de contraseña para decodificar archivos ....

Piénsalo ... Avísame ...

Con los años, he recopilado código vbScript para hacer cosas como MD5, SHA1, IDEA y otras rutinas criptográficas, pero no las escribí. Demonios, probablemente podrías simplemente interactuar con CryptoAPI de Microsoft y dividir cada acción en sus partes principales y aún así hacer que funcione. (No encontrará una llamada de Micosoft CryptoAPI como "DecryptPGP ()" ... Todo tendría que hacerse en fragmentos).

Déjame saber si puedo ayudarte.

Buscaría un cifrado / descifrado de línea de comandos y solo llamaría al archivo ejecutable desde la aplicación de Access, con los parámetros correctos.

No hay ningún encriptador / desencriptador PGP en VBA que yo sepa.

No estoy familiarizado con VBA para Access, pero creo que la mejor solución (quizás la más sencilla) sería ejecutar la utilidad PGP de línea de comandos externa.

Hay una DLL a la que puede llamar directamente desde su aplicación VBA sin tener que abarcar un programa externo: CryptoCX . PGP también tiene una DLL a la que puede llamar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top