Давайте рассмотрим пример создания пары ключей PGP и использования ключей для шифрования и дешифрования.
Генерация ключей PGP в MacOS отличается от Windows. Чтобы сгенерировать пару ключей PGP в MacOS, вам необходимо установить следующее:
- GnuPG
- Средний балл
- модуль python-gnupg, если вы планируете генерировать ключи с помощью Python 3
Вот как вы установите это на MacOS:
Теперь, когда у вас настроена MacOS, вот как вы можете сгенерировать ключи с помощью инструмента командной строки GnuPG:
В Python 3:
Если вы хотите сгенерировать ключ PGP в хранилище ключей с помощью Python 3.9.3+, вам сначала нужно будет установить модуль GnuPG для Python 3 по протоколу pip:
pip3 install python-gnupg
Вот код Python 3 для генерации ключа PGP в хранилище ключей:
Этот код автоматически помещает ключ PGP в хранилище ключей. Адрес электронной почты - это ваш уникальный идентификатор для доступа к ключу из хранилища ключей. Как вы увидите в примерах ниже, для шифрования файла мы будем использовать часть открытого ключа из хранилища ключей; однако для расшифровки того же файла мы будем использовать часть закрытого ключа с парольной фразой.
Шифрование:
Давайте теперь подробнее рассмотрим, как зашифровать содержимое текстового файла с помощью Python 3 и части открытого ключа PGP из хранилища ключей:
Вот содержимое файла ./textfiles/almir.txt:
После выполнения скрипта Python:
$ python3 my_pgp_encrypt.py
Зашифрованное содержимое входного файла сохраняется в ./textfiles/almir.txt.encrypted файле:
Расшифровка:
Чтобы расшифровать содержимое этого файла, нам необходимо использовать закрытый ключ PGP из хранилища ключей, а при использовании закрытого ключа требуется кодовая фраза. Вот код Python для этого:
Выполним код расшифровки:
$ python3 my_pgp_decrypt.py
Согласно нашему коду Python файл с расшифрованным содержимым: ./textfiles/almir.txt.encrytped.decrypted.
Пришло время разбить этот код на модули и обернуть его в общую библиотеку, которую я могу легко использовать в будущем.
В Windows?
Я не пробовал код Python в Windows 10, но я поигрался с генерацией пары ключей PGP и экспортом открытого и закрытого ключей:
- Загрузите инструмент Kleopatra: https://www.gpg4win.org/thanks-for-download.html
- Затем используйте графический интерфейс Kleopatra для генерации пары ключей и экспорта открытых и закрытых ключей.
Спасибо, что прочитали эту статью. Продолжайте гикать !!
Альмир Мустафик