Чтобы ввести зашифрованную строку, вы можете echo
сначала вывести ее, а затем передать в команду gpg
.
echo <message> | gpg --decrypt ...
Для ввода ключевой фразы есть несколько способов в зависимости от вашей версии env и gpg .То, что работало на моей Ubuntu 18.04.2 с gpg 2.2.4 , заключалось в использовании --pinentry-mode=loopback
, а затем в --passphrase
:
gpg --decrypt -a --pinentry-mode=loopback --passphrase="yourpassphrase"
Pythonкод будет выглядеть примерно так:
import os
message = '093j0rawrkj2or2r'
command = "echo '{}' | gpg --decrypt -a --pinentry-mode=loopback --passphrase=yourpassphrase".format(message)
os.system(command)
Но указание фактического --passphrase-yourpassphrase
очень небезопасно.Другой вариант - поместить фразу-пароль в какой-нибудь файл, а затем использовать опцию --passphrase-file
.
import os
message = '093j0rawrkj2or2r'
command = "echo '{}' | gpg --decrypt -a --pinentry-mode=loopback --passphrase-file=yourpassphrasefile".format(message)
os.system(command)
Я не знаю, где вы получили зашифрованное сообщение, но я обычно работаю с зашифрованными файлами .Если зашифрованный ввод взят из файла, просто замените echo <string>
на cat <filepath>
:
cat somefile.txt | gpg --decrypt -a --pinentry-mode=loopback --passphrase-file=yourpassphrasefile