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.
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_256pdf.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.