Ich verwende den folgenden Befehl, um eine Zeichenfolge in einer Datei zu verschlüsseln, aber es schlägt immer mit der Fehlermeldung „gpg --encrypt benötigt Eingabe“ fehl.
gpg.exe --batch --passphrase-fd 0 --armor --sign --recipient [email protected] --homedir "c:\gnupg" --encrypt 1 > "test.gpg"
Irgendwelche Ideen?
Antwort1
GnuPG erwartet immer Eingaben aus einer Datei oder von STDIN. Um einen String an STDIN zu übergeben, verwenden Sie ECHO
auf Windows-Systemen oder echo
auf Unix-Systemen und geben Sie Folgendes ein gpg
:
ECHO 1 | gpg [other options] --encrypt
echo 1 | gpg [other options] --encrypt
Da Sie die Passphrase bereits vom Dateideskriptor 0 (STDIN) erwarten, müssen Sie entweder
- Geben Sie eine beliebige Passphrase und Daten ein, die von einem anderen Standort aus signiert werden sollen
sh
Pipe in beiden Zeichenfolgen, getrennt durch ein Newline-Zeichen, was mit / auf Unix-Systemen einfach istbash
(echo -e "passphrase\ndata" | gpg --sign --encrypt
), abererfordert eine ziemlich hackige Lösung unter Windows(Ich bin mit der Windows-Eingabeaufforderung nicht so vertraut, aber wahrscheinlich müssen Sie eine der Lösungen mit einem einzelnenECHO
Befehl wählen.)