Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Несанкционированный доступ к конфиденциальным файлам сегодня является распространенной проблемой. Чтобы убедиться, что только авторизованные вами люди могут получить доступ к содержимому ваших файлов, вы можете зашифровать их перед передачей.

Узнайте, как зашифровать PDF-файл с помощью Python и как расшифровать его до исходного состояния.

Настройка среды

Чтобы следовать дальше, вы должны быть знакомы с основы Python.

В терминале Mac или интерфейсе командной строки Windows выполните следующую команду, чтобы установить библиотеку PyMuPDF:

pip установить PyMuPDF

Эта библиотека поможет вам открывать файлы PDF и управлять ими.

Когда вы закончили установку PyMuPDF, вы готовы начать кодирование.

Полный исходный код доступен в Репозиторий GitHub.

Импорт модуля Фитца

Импортируйте модуль fitz из библиотеки PyMuPDF. Это позволит вам вызывать и использовать функции, которые он поддерживает.

instagram viewer
Импортировать Фитц

Вы будете использовать 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_256

pdf.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 очень разнообразен, и вы можете применять его во многих областях для выполнения различных задач.