¿Cómo cifrar el contenido del archivo desde el mensaje por lotes en GnuPG?

¿Cómo cifrar el contenido del archivo desde el mensaje por lotes en GnuPG?

Estoy usando el siguiente comando para cifrar una cadena en un archivo, pero siempre falla y muestra el mensaje de error "gpg --encrypt necesita entrada".

gpg.exe --batch --passphrase-fd 0 --armor --sign --recipient [email protected] --homedir "c:\gnupg" --encrypt 1 > "test.gpg"

¿Algunas ideas?

Respuesta1

GnuPG siempre espera información de un archivo o de STDIN. Para pasar una cadena a STDIN, úsela ECHOen sistemas Windows o echoen sistemas Unix y canalícela a gpg:

ECHO 1 | gpg [other options] --encrypt
echo 1 | gpg [other options] --encrypt

Como ya espera la frase de contraseña del descriptor de archivo 0 (que es STDIN), tendrá que hacerlo

  • proporcionar cualquier frase de contraseña y datos para firmar desde otra ubicación
  • canalización en ambas cadenas separadas por un carácter de nueva línea, lo cual es fácil con sh/ bashen sistemas Unix ( echo -e "passphrase\ndata" | gpg --sign --encrypt), perorequiere una solución bastante hacky en Windows(No estoy muy familiarizado con el símbolo del sistema de Windows, pero probablemente tendrás que elegir una de las soluciones con un solo ECHOcomando).

información relacionada