Есть ли способ расшифровать зашифрованный файл с помощью библиотек Python?

Мне дали задание, в котором я должен написать скрипт на Python, который можно использовать для расшифровки некоторых зашифрованных файлов.

мне дали с

  1. examplefile.pgp (зашифрованный файл с текстовыми данными)
  2. examplepublic.asc (открытый ключ в формате asc)
  3. example.pkr (общедоступный брелок)
  4. Например.skr (Секретный брелок)
  5. парольная фраза

Задача — получить тест, расшифровав файл 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, вам нужно будет импортировать как открытый, так и секретный набор ключей и проверить их как сертификаты. Как только это будет сделано, приведенный выше код должен работать.

Другие вопросы по тегам