Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Neteisėta prieiga prie jautrių failų šiandien yra dažna problema. Norėdami įsitikinti, kad tik jūsų įgalioti žmonės gali pasiekti jūsų failų turinį, galite juos užšifruoti prieš perduodant.

Sužinokite, kaip užšifruoti PDF failą naudojant Python ir kaip iššifruoti jį į pradinę būseną.

Aplinkos nustatymas

Norėdami sekti, turėtumėte būti susipažinę su Python pagrindai.

„Mac“ terminale arba „Windows“ komandų eilutės sąsajoje paleiskite šią komandą, kad įdiegtumėte PyMuPDF biblioteką:

pip įdiegti PyMuPDF

Ši biblioteka padės atidaryti ir valdyti PDF failus.

Kai baigsite įdiegti PyMuPDF, būsite pasiruošę pradėti kodavimą.

Visą šaltinio kodą rasite a GitHub saugykla.

Importuokite „Fitz“ modulį

Importuokite PyMuPDF bibliotekos fitz modulį. Taip galėsite skambinti ir naudotis palaikomomis funkcijomis.

importuoti fitz

Norėdami atidaryti, užšifruoti, iššifruoti ir išsaugoti PDF failus, naudosite fitz.

instagram viewer

Patikrinkite, ar PDF yra užšifruotas

Sukurkite funkciją, kuri patikrins, ar PDF failas jau užšifruotas ir grąžins loginę reikšmę.

defpdf_yra_šifruotas(failas):
pdf = fitz. Dokumentas (failas)
grąžinti pdf.isEncrypted

Šią funkciją naudosite vėliau, kad padėtumėte programai automatiškai nuspręsti, ar šifruoti ar iššifruoti įvestą PDF.

PDF šifravimas

Sukurkite įvesties PDF užšifravimo funkciją. Funkcija patikrins, ar PDF jau užšifruotas. Jei jis nėra užšifruotas, jis užšifruos jį naudodamas AES-256 algoritmas. Tai stipriausias „Fitz“ siūlomas šifravimo algoritmas. Pagaliau jis išsaugos užšifruotą PDF failą.

defšifruoti_pdf_failą(pdf, slaptažodis, failas, failas):
jeigune pdf_is_encrypted (failas):
perm = int(
# Įsitikinkite, kad visi turi PDF
# gali jį pasiekti
fitz. PDF_PERM_ACCESSIBILITY
| fitz. PDF_PERM_PRINT # leidžia spausdinti
| fitz. PDF_PERM_COPY # leidžia kopijuoti
| fitz. PDF_PERM_ANNOTATE # leidžia komentarus
)

# ešifravimo algoritmas
encrypt_meth = fitz. PDF_ENCRYPT_AES_256

pdf.save (outfile, encryption=encrypt_meth, user_pw=slaptažodis,
leidimai = leidimas)

jeigu pdf.save:
spausdinti („PDF užšifruotas“)

Ši funkcija išsaugo užšifruotą PDF failo kelyje, kurį perduodate argumente Outfile.

Šifruoto PDF iššifravimas

Sukurkite iššifravimo funkciją. Ši funkcija pirmiausia patikrins, ar įvesties failas yra užšifruotas. Jei jis yra užšifruotas, jis paragins vartotoją įvesti slaptažodį. Tada jis bandys atidaryti PDF naudodami pateiktą slaptažodį. Jei slaptažodis teisingas, „Fitz“ iššifruos PDF. Tada jis išsaugos iššifruoto PDF turinį kitame neapsaugotame PDF faile.

defiššifruoti_pdf(failas):
jeigu pdf_is_encrypted (failas):
slaptažodis = input ('Įveskite pdf slaptažodį:')
pdf = fitz.open (failas)

jeigu pdf.authenticate (slaptažodis):
pdf.save(„decrypted.pdf“)

jeigu pdf.save:
spausdinti („PDF iššifruotas“)
Kitas:
spausdinti ('Neteisingas slaptažodis')

Šis kodas išsaugo neapsaugotą PDF failą dabartiniame darbo kataloge.

Iššifravo apsaugotas.pdf failą ir išsaugojo jį kaip iššifruotas.pdf.

Programos srauto valdymas

Sukurkite pagrindinę funkciją, kuri valdys jūsų programos eigą. Jis išsaugos įvesties PDF kelią, iškvies šifravimo ir iššifravimo funkcijas ir perduos įvesties parametrus.

defpagrindinis():
# pakeiskite failo kelią bet kuriuo iš
# pdf, kurį reikia užšifruoti arba iššifruoti
failas = 'pavyzdys.pdf'
pdf = fitz.open (failas)
slaptažodis = 'pass123'
encrypt_pdf_file (pdf, slaptažodis, 'protected.pdf', failas)
iššifruoti_pdf (pdf)

Jei norite pakeisti užšifruoto PDF failo pavadinimą, pakeiskite „protected.pdf“ į savo, nepamirškite išsaugoti plėtinio „.pdf“.

Pagrindinio metodo vykdymas

Pirmiausia įsitikinkite, kad veikia pagrindinis metodas:

jeigu __vardas__ == '__pagrindinis__':
pagrindinis ()

Šis kodas tikrina, ar scenarijus vykdomas kaip pagrindinė programa, o ne kaip importuotas modulis. Jei tai pagrindinė programa, ji iškviečia pagrindinę funkciją.

Tobulinkite savo Python įgūdžius

Sukurti PDF šifravimo / iššifravimo programą Python yra įdomus, bet sudėtingas projektas. Tai padeda lavinti savo Python įgūdžius ir valdyti failus su kalba.

Norėdami patobulinti savo įgūdžius, turėtumėte dirbti su daugiau Python projektų. Tai padės jums bendrauti su daugiau Python bibliotekų ir modulių. Python yra labai įvairus ir galite jį pritaikyti daugelyje sričių, kad atliktumėte įvairias užduotis.