Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Неовлашћени приступ осетљивим датотекама данас је уобичајен проблем. Да бисте били сигурни да само особе које овластите могу да приступе садржају ваших датотека, можете их шифровати пре преноса.

Научите како да шифрујете ПДФ датотеку помоћу Питхон-а и како да је дешифрујете назад у првобитно стање.

Постављање окружења

Да бисте то пратили, требало би да сте упознати са основе Пајтона.

На Мац терминалу или Виндовс интерфејсу командне линије, покрените следећу команду да бисте инсталирали ПиМуПДФ библиотеку:

пип инсталл ПиМуПДФ

Ова библиотека ће вам помоћи да отворите и манипулишете ПДФ датотекама.

Када завршите са инсталирањем ПиМуПДФ-а, спремни сте да почнете са кодирањем.

Комплетан изворни код је доступан у а ГитХуб спремиште.

Увезите Фитз модул

Увезите фитз модул библиотеке ПиМуПДФ. Ово ће вам омогућити да позовете и користите функције које подржава.

увоз фитз

Користићете фитз за отварање, шифровање, дешифровање и чување ПДФ-ова.

Проверите да ли је ПДФ шифрован

Креирајте функцију која ће проверити да ли је ПДФ већ шифрован и враћа логичку вредност.

дефпдф_ис_енцриптед(фајл):
пдф = фитз. Документ (фајл)
повратак пдф.исЕнцриптед

Ову функцију ћете касније користити да помогнете програму да аутоматски одлучи да ли да шифрује или дешифрује улазни ПДФ.

Шифровање ПДФ-а

Креирајте функцију за шифровање улазног ПДФ-а. Функција ће проверити да ли је ПДФ већ шифрован. Ако није шифровано, шифроваће га помоћу алгоритам АЕС-256. Ово је најјачи алгоритам за шифровање који нуди Фитз. Коначно ће сачувати шифровани ПДФ.

дефенцрипт_пдф_филе(пдф, лозинка, оутфиле, фајл):
аконе пдф_ис_енцриптед (фајл):
перм = инт(
# Осигурајте да сви имају ПДФ
# може приступити
фитз. ПДФ_ПЕРМ_АЦЦЕССИБИЛИТИ
| фитз. ПДФ_ПЕРМ_ПРИНТ # дозвољава штампање
| фитз. ПДФ_ПЕРМ_ЦОПИ # дозвољава копирање
| фитз. ПДФ_ПЕРМ_АННОТАТЕ # дозвољава напомене
)

# Алгоритам еШифровања
енцрипт_метх = фитз. ПДФ_ЕНЦРИПТ_АЕС_256

пдф.саве (оутфиле, енцриптион=енцрипт_метх, усер_пв=пассворд,
дозволе=дозвола)

ако пдф.саве:
штампа („ПДФ шифрован“)

Ова функција чува шифровани ПДФ на путањи датотеке коју проследите у аргументу оутфиле.

Дешифровање шифрованог ПДФ-а

Направите функцију дешифровања. Ова функција ће прво проверити да ли је улазна датотека шифрована. Ако је шифрована, од корисника ће се тражити да унесе лозинку. Затим ће покушати да отвори ПДФ користећи дату лозинку. Ако је лозинка тачна, Фитз ће дешифровати ПДФ. Затим ће сачувати садржај дешифрованог ПДФ-а у другу незаштићену ПДФ датотеку.

дефдецрипт_пдф(фајл):
ако пдф_ис_енцриптед (фајл):
лозинка = улаз ('Унесите пдф лозинку:')
пдф = фитз.опен (фајл)

ако пдф.аутхентицате (лозинка):
пдф.саве('децриптед.пдф')

ако пдф.саве:
штампа („ПДФ дешифрован“)
друго:
штампа ('Погрешна лозинка')

Овај код чува незаштићени ПДФ у вашем тренутном радном директоријуму.

Дешифровао је заштићено.пдф датотеку и сачувао је као децриптед.пдф.

Контролисање тока програма

Направите главну функцију која ће контролисати ток вашег програма. Он ће сачувати путању улазног ПДФ-а, позвати функцију шифровања и дешифровања и проследити улазне параметре.

дефглавни():
# замените путању датотеке било којом од
# пдф који треба шифровати или дешифровати
филе = 'сампле.пдф'
пдф = фитз.опен (фајл)
лозинка = 'пасс123'
енцрипт_пдф_филе (пдф, лозинка, 'протецтед.пдф', фајл)
децрипт_пдф (пдф)

Да бисте променили име шифроване ПДФ датотеке, замените „протецтед.пдф“ својим, пазећи да задржите екстензију „.пдф“.

Покретање главне методе

Уверите се да се главни метод прво покреће:

ако __наме__ == '__главни__':
главни()

Овај код проверава да ли се скрипта покреће као главни програм, а не као увезени модул. Ако је то главни програм, он позива главну функцију.

Унапредите своје Питхон вештине

Креирање програма за шифровање/дешифровање ПДФ-а у Питхон-у је забаван, али изазован пројекат. Помаже вам да вежбате своје Питхон вештине и савладате руковање датотекама са језиком.

Да бисте унапредили своје вештине, требало би да радите на више Питхон пројеката. Ово ће вам помоћи да комуницирате са више Питхон библиотека и модула. Питхон је веома разнолик и можете га применити у многим областима за обављање различитих задатака.