Volitamata juurdepääs tundlikele failidele on tänapäeval tavaline probleem. Veendumaks, et ainult teie volitatud inimesed pääsevad teie failide sisule juurde, saate need enne edastamist krüpteerida.
Siit saate teada, kuidas Pythoni abil PDF-faili krüptida ja kuidas seda algolekusse tagasi dekrüpteerida.
Keskkonna seadistamine
Järgimiseks peaksite olema tuttav Pythoni põhitõed.
Käivitage Maci terminalis või Windowsi käsurea liideses PyMuPDF teegi installimiseks järgmine käsk:
pip installi PyMuPDF
See teek aitab teil avada ja töödelda PDF-faile.
Kui olete PyMuPDF-i installimise lõpetanud, olete valmis kodeerimist alustama.
Täielik lähtekood on saadaval a GitHubi hoidla.
Importige Fitzi moodul
Importige PyMuPDF-i teegi fitz-moodul. See võimaldab teil helistada ja kasutada funktsioone, mida see toetab.
importida fitz
PDF-ide avamiseks, krüpteerimiseks, dekrüpteerimiseks ja salvestamiseks kasutate fitzi.
Kontrollige, kas PDF on krüptitud
Looge funktsioon, mis kontrollib, kas PDF on juba krüptitud, tagastades tõeväärtuse.
defpdf_on_crypted(fail):
pdf = fitz. Dokument (fail)
tagasi pdf.isEncrypted
Kasutate seda funktsiooni hiljem, et aidata programmil automaatselt otsustada, kas sisend-PDF krüptida või dekrüpteerida.
PDF-i krüptimine
Looge funktsioon sisend-PDF-i krüptimiseks. Funktsioon kontrollib, kas PDF on juba krüptitud. Kui see pole krüptitud, krüpteerib see selle kasutades AES-256 algoritm. See on tugevaim krüpteerimisalgoritm, mida fitz pakub. Lõpuks salvestab see krüptitud PDF-i.
defkrüpteeri_pdf_fail(pdf, parool, väljund, fail):
kuimitte pdf_is_encrypted (fail):
perm = int(
# Veenduge, et kõik oleksid PDF-iga
# pääseb sellele juurde
fitz. PDF_PERM_ACCESSIBILITY
| fitz. PDF_PERM_PRINT # lubab printida
| fitz. PDF_PERM_COPY # lubab kopeerida
| fitz. PDF_PERM_ANNOTATE # lubab märkmeid
)# e-krüptimise algoritm
encrypt_meth = fitz. PDF_ENCRYPT_AES_256pdf.save (outfile, encryption=encrypt_meth, user_pw=password,
load=perm)
kui pdf.save:
print("PDF krüptitud")
See funktsioon salvestab krüptitud PDF-i failiteele, mille edastate argumendis outfile.
Krüptitud PDF-i dekrüpteerimine
Loo dekrüpteerimisfunktsioon. See funktsioon kontrollib esmalt, kas sisendfail on krüptitud. Kui see on krüptitud, palub see kasutajal sisestada parool. Seejärel proovib see PDF-i avatud parooli abil avada. Kui parool on õige, dekrüpteerib fitz PDF-i. Seejärel salvestab see dekrüpteeritud PDF-i sisu teise kaitsmata PDF-faili.
defdekrüpteerida_pdf(fail):
kui pdf_is_encrypted (fail):
parool = input("Sisestage pdf-i parool:")
pdf = fitz.open (fail)kui pdf.authenticate (parool):
pdf.save('decrypted.pdf')
kui pdf.save:
print("PDF dekrüptitud")
muidu:
print('Vale salasõna')
See kood salvestab kaitsmata PDF-i teie praegusesse töökataloogi.
The on dekrüpteerinud kaitstud.pdf faili ja salvestas selle nimega dekrüpteeritud.pdf.
Programmi voo juhtimine
Looge põhifunktsioon, mis juhib teie programmi voogu. See salvestab sisend-PDF-i tee, kutsub välja krüpti- ja dekrüpteerimisfunktsiooni ning edastab sisendparameetrid.
defpeamine():
# asendada failitee ükskõik kummaga
# krüpteeritav või dekrüpteeritav pdf
fail = 'sample.pdf'
pdf = fitz.open (fail)
parool = 'pass123'
encrypt_pdf_file (pdf, parool, 'protected.pdf', fail)
decrypt_pdf (pdf)
Krüptitud PDF-faili nime muutmiseks asendage "protected.pdf" enda nimega, säilitades kindlasti laiendi ".pdf".
Põhimeetodi käivitamine
Veenduge, et põhimeetod töötaks esmalt:
kui __nimi__ == '__peamine__':
peamine ()
See kood kontrollib, kas skripti käitatakse põhiprogrammina, mitte imporditud moodulina. Kui see on põhiprogramm, kutsub see välja põhifunktsiooni.
Täiustage oma Pythoni oskusi
PDF-i krüpteerimis-/dekrüpteerimisprogrammi loomine Pythonis on lõbus, kuid väljakutseid pakkuv projekt. See aitab teil harjutada oma Pythoni oskusi ja hallata keelega failide käsitlemist.
Oma oskuste arendamiseks peaksite töötama rohkemate Pythoni projektidega. See aitab teil suhelda rohkemate Pythoni teekide ja moodulitega. Python on väga mitmekesine ja saate seda kasutada paljudes valdkondades erinevate ülesannete täitmiseks.