Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Accesul neautorizat la fișierele sensibile este o problemă comună astăzi. Pentru a vă asigura că numai persoanele pe care le autorizați pot accesa conținutul fișierelor dvs., le puteți cripta înainte de transmitere.

Aflați cum să criptați un fișier PDF folosind Python și cum să decriptați unul înapoi la starea inițială.

Configurarea mediului

Pentru a urma, ar trebui să fii familiarizat cu elementele de bază ale Python.

Pe un terminal Mac sau pe o interfață de linie de comandă Windows, rulați următoarea comandă pentru a instala biblioteca PyMuPDF:

pip instalează PyMuPDF

Această bibliotecă vă va ajuta să deschideți și să manipulați fișiere PDF.

Când ați terminat de instalat PyMuPDF, sunteți gata să începeți codarea.

Codul sursă complet este disponibil în a Depozitul GitHub.

Importați modulul Fitz

Importați modulul fitz al bibliotecii PyMuPDF. Acest lucru vă va permite să apelați și să utilizați funcțiile pe care le acceptă.

import fitz

Veți folosi fitz pentru a deschide, cripta, decripta și salva fișierele PDF.

Verificați dacă PDF-ul este criptat

Creați o funcție care va verifica dacă PDF-ul este deja criptat, returnând o valoare booleană.

defpdf_este_criptat(fişier):
pdf = fitz. document (dosar)
întoarcere pdf.isEncrypted

Veți folosi această funcție mai târziu pentru a ajuta programul să decidă automat dacă să cripteze sau să decripteze PDF-ul de intrare.

Criptarea PDF-ului

Creați o funcție pentru a cripta PDF-ul de intrare. Funcția va verifica dacă PDF-ul este deja criptat. Dacă nu este criptat, îl va cripta folosind algoritmul AES-256. Acesta este cel mai puternic algoritm de criptare pe care Fitz îl oferă. În cele din urmă, va salva PDF-ul criptat.

defencrypt_pdf_file(pdf, parola, outfile, fisier):
dacănu pdf_is_encrypted (fișier):
perm = int(
# Asigurați-vă că toată lumea are PDF-ul
# îl poate accesa
fitz. PDF_PERM_ACCESIBILITATE
| fitz. PDF_PERM_PRINT # permite tipărirea
| fitz. PDF_PERM_COPY # permite copierea
| fitz. PDF_PERM_ANNOTATE # permite adnotări
)

# algoritm de eEncryption
encrypt_meth = fitz. PDF_ENCRYPT_AES_256

pdf.save (outfile, encryption=encrypt_meth, user_pw=parolă,
permisiuni=perm)

dacă pdf.save:
imprimare(„PDF criptat”)

Această funcție salvează PDF-ul criptat pe calea fișierului pe care o treceți în argumentul Outfile.

Decriptarea PDF-ului criptat

Creați o funcție de decriptare. Această funcție va verifica mai întâi dacă fișierul de intrare este criptat. Dacă este criptat, acesta va solicita utilizatorului să introducă parola. Apoi va încerca să deschidă PDF-ul folosind parola furnizată. Dacă parola este corectă, fitz va decripta PDF-ul. Apoi, va salva conținutul PDF-ului decriptat într-un alt fișier PDF neprotejat.

defdecriptare_pdf(fişier):
dacă pdf_is_encrypted (fișier):
parola = input(„Introduceți parola pdf:”)
pdf = fitz.open (fișier)

dacă pdf.authenticate (parolă):
pdf.save(„decrypted.pdf”)

dacă pdf.save:
imprimare(„PDF decriptat”)
altfel:
imprimare('Parola incorecta')

Acest cod salvează PDF-ul neprotejat în directorul de lucru curent.

A decriptat protejat.pdf fișier și l-am salvat ca decriptat.pdf.

Controlul fluxului programului

Creați o funcție principală care va controla fluxul programului dvs. Acesta va stoca calea PDF-ului de intrare, va apela funcția de criptare și decriptare și va transmite parametrii de intrare.

defprincipal():
# înlocuiți calea fișierului cu cea a
# pdf-ul să fie criptat sau decriptat
fisier = „sample.pdf”
pdf = fitz.open (fișier)
parola = „pass123”
encrypt_pdf_file (pdf, parola, „protected.pdf”, dosar)
decrypt_pdf (pdf)

Pentru a schimba numele fișierului PDF criptat, înlocuiți „protected.pdf” cu al dumneavoastră, asigurându-vă că păstrați extensia „.pdf”.

Rularea metodei principale

Asigurați-vă că metoda principală rulează mai întâi:

dacă __nume__ == '__principal__':
principal()

Acest cod verifică dacă scriptul este rulat ca program principal și nu ca modul importat. Dacă este programul principal, apelează funcția principală.

Îmbunătățiți-vă abilitățile Python

Crearea unui program de criptare/decriptare PDF în Python este un proiect distractiv, dar provocator. Vă ajută să vă exersați abilitățile Python și să gestionați fișierele de master cu limbajul.

Pentru a vă îmbunătăți abilitățile, ar trebui să lucrați la mai multe proiecte Python. Acest lucru vă va ajuta să interacționați cu mai multe biblioteci și module Python. Python este foarte divers și îl puteți aplica în multe domenii pentru a îndeplini diferite sarcini.