Есть ли способ расшифровать зашифрованный файл с помощью библиотек Python?
Мне дали задание, в котором я должен написать скрипт на Python, который можно использовать для расшифровки некоторых зашифрованных файлов.
мне дали с
- examplefile.pgp (зашифрованный файл с текстовыми данными)
- examplepublic.asc (открытый ключ в формате asc)
- example.pkr (общедоступный брелок)
- Например.skr (Секретный брелок)
- парольная фраза
Задача — получить тест, расшифровав файл examplefile.pgp.
Я попробовал следующий скрипт, чтобы сначала проверить открытый ключ
import pgpy
emsg = pgpy.PGPMessage.from_file(r"examplefile.pgp")
key,_ = pgpy.PGPKey.from_file(r"examplepublic.asc")
print(key)
Это сработало нормально, и открытый ключ был напечатан, но я не могу использовать его для расшифровки, поэтому я попробовал следующий скрипт.
import gnupg
gpg = gnupg.GPG(gnupghome=r"C:\Program Files (x86)\GnuPG",
gpgbinary = r"C:\Program Files (x86)\GnuPG\bin\gpg.exe",
keyring=r"example.pkr",
secret_keyring=r"example.skr")
with open(r"examplefile.pgp",'rb') as f:
status = gpg.decrypt_file(f,passphrase='passphrase',output='output.txt')
print(status.status)
Но это возвращает ошибку "нет секретного ключа"
Я попытался выполнить этот процесс вручную с помощью Cleopatra, и он работал с использованием вышеуказанных ключей.
Может ли кто-нибудь помочь мне в том, как я могу расшифровать текст с помощью файлов .pkr и .skr?
1 ответ
Решил эту проблему. Хотел опубликовать исправление, если кто-то хочет знать.
Код в вопросе правильный, но чтобы он работал, вам нужно скачать инструмент Kleopatra.
После того, как вы откроете Kleopatra, вам нужно будет импортировать как открытый, так и секретный набор ключей и проверить их как сертификаты. Как только это будет сделано, приведенный выше код должен работать.