Как зашифровать содержимое файла из командной строки в GnuPG?

Как зашифровать содержимое файла из командной строки в GnuPG?

Я использую команду ниже для шифрования строки в файл, но она всегда завершается ошибкой с сообщением об ошибке «gpg --encrypt needs input».

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

Есть идеи?

решение1

GnuPG всегда ожидает ввода из файла или из STDIN. Чтобы передать строку в STDIN, используйте ECHOв системах Windows или echoв системах Unix и передайте в gpg:

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

Поскольку вы уже ожидаете парольную фразу из файлового дескриптора 0 (который является STDIN), вам придется либо

  • предоставить любую парольную фразу и данные для подписи из другого места
  • в обеих строках используется символ новой строки, разделенный символом «новая строка», что легко сделать с помощью sh/ bashв системах Unix ( echo -e "passphrase\ndata" | gpg --sign --encrypt), нотребуется довольно хакерское решение на Windows(Я не слишком хорошо знаком с командной строкой Windows, но, скорее всего, вам придется выбрать одно из решений с одной ECHOкомандой).

Связанный контент