Несанкционированный доступ к конфиденциальным файлам сегодня является распространенной проблемой. Чтобы убедиться, что только авторизованные вами люди могут получить доступ к содержимому ваших файлов, вы можете зашифровать их перед передачей.
Узнайте, как зашифровать PDF-файл с помощью Python и как расшифровать его до исходного состояния.
Настройка среды
Чтобы следовать дальше, вы должны быть знакомы с основы Python.
В терминале Mac или интерфейсе командной строки Windows выполните следующую команду, чтобы установить библиотеку PyMuPDF:
pip установить PyMuPDF
Эта библиотека поможет вам открывать файлы PDF и управлять ими.
Когда вы закончили установку PyMuPDF, вы готовы начать кодирование.
Полный исходный код доступен в Репозиторий GitHub.
Импорт модуля Фитца
Импортируйте модуль fitz из библиотеки PyMuPDF. Это позволит вам вызывать и использовать функции, которые он поддерживает.
Импортировать Фитц
Вы будете использовать fitz для открытия, шифрования, расшифровки и сохранения PDF-файлов.
Проверьте, зашифрован ли PDF
Создайте функцию, которая будет проверять, зашифрован ли уже PDF-файл, возвращая логическое значение.
дефpdf_is_encrypted(файл):
pdf = фитц. Документ (файл)
возвращаться pdf.isEncrypted
Вы будете использовать эту функцию позже, чтобы помочь программе автоматически решить, следует ли шифровать или расшифровывать входной PDF-файл.
Шифрование PDF
Создайте функцию для шифрования входного PDF. Функция проверит, зашифрован ли уже PDF-файл. Если он не зашифрован, он зашифрует его с помощью алгоритм AES-256. Это самый надежный алгоритм шифрования, который предлагает Фитц. Наконец, он сохранит зашифрованный PDF.
дефencrypt_pdf_file(pdf, пароль, выходной файл, файл):
еслинет pdf_is_encrypted (файл):
Пермь = интервал (
# Убедитесь, что все с PDF
# может получить к нему доступ
Фиц. PDF_PERM_ACCESSIBILITY
| Фиц. PDF_PERM_PRINT # разрешает печать
| Фиц. PDF_PERM_COPY # разрешает копирование
| Фиц. PDF_PERM_ANNOTATE # разрешает аннотации
)# Алгоритм электронного шифрования
encrypt_meth = фитц. PDF_ENCRYPT_AES_256pdf.save (исходной файл, шифрование = encrypt_meth, user_pw = пароль,
разрешения=постоянные)
если pdf.сохранить:
Распечатать("PDF зашифрован")
Эта функция сохраняет зашифрованный PDF-файл по пути к файлу, указанному в аргументе outfile.
Расшифровка зашифрованного PDF
Создайте функцию расшифровки. Эта функция сначала проверит, зашифрован ли входной файл. Если он зашифрован, пользователю будет предложено ввести пароль. Затем он попытается открыть PDF-файл, используя предоставленный пароль. Если пароль правильный, Фитц расшифрует PDF-файл. Затем он сохранит содержимое расшифрованного PDF-файла в другой незащищенный PDF-файл.
дефрасшифровать_pdf(файл):
если pdf_is_encrypted (файл):
пароль = ввод('Введите пароль pdf:')
pdf = fitz.open (файл)если pdf.authenticate (пароль):
пдф.сохранить('расшифрованный.pdf')
если pdf.сохранить:
Распечатать("PDF расшифрован")
еще:
Распечатать('Неверный пароль')
Этот код сохраняет незащищенный PDF-файл в вашем текущем рабочем каталоге.
Компания расшифровала защищенный.pdf файл и сохранил его как расшифрован.pdf.
Управление потоком программы
Создайте основную функцию, которая будет управлять потоком вашей программы. Он сохранит путь к входному PDF-файлу, вызовет функции шифрования и расшифровки и передаст входные параметры.
дефосновной():
# замените путь к файлу на любой из
# pdf файл, который нужно зашифровать или расшифровать
файл = 'образец.pdf'
pdf = fitz.open (файл)
пароль = 'пройти123'
encrypt_pdf_file (pdf, пароль, 'защищенный.pdf', файл)
расшифровать_pdf (pdf)
Чтобы изменить имя зашифрованного PDF-файла, замените «protected.pdf» на свое собственное, сохранив при этом расширение «.pdf».
Запуск основного метода
Убедитесь, что основной метод запускается первым:
если __имя__ == '__основной__':
основной()
Этот код проверяет, запускается ли скрипт как основная программа, а не как импортированный модуль. Если это основная программа, она вызывает основную функцию.
Улучшите свои навыки Python
Создание программы шифрования/дешифрования PDF на Python — увлекательный, но сложный проект. Это поможет вам практиковать свои навыки Python и освоить работу с файлами с помощью языка.
Чтобы улучшить свои навыки, вам следует поработать над большим количеством проектов Python. Это поможет вам взаимодействовать с большим количеством библиотек и модулей Python. Python очень разнообразен, и вы можете применять его во многих областях для выполнения различных задач.