Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Neatļauta piekļuve sensitīviem failiem mūsdienās ir izplatīta problēma. Lai nodrošinātu, ka tikai jūsu pilnvarotās personas var piekļūt jūsu failu saturam, varat tos šifrēt pirms nosūtīšanas.

Uzziniet, kā šifrēt PDF failu, izmantojot Python, un kā to atšifrēt sākotnējā stāvoklī.

Vides iestatīšana

Lai sekotu līdzi, jums vajadzētu iepazīties ar Python pamati.

Mac terminālī vai Windows komandrindas saskarnē palaidiet šo komandu, lai instalētu PyMuPDF bibliotēku:

pip instalējiet PyMuPDF

Šī bibliotēka palīdzēs jums atvērt un apstrādāt PDF failus.

Kad esat pabeidzis PyMuPDF instalēšanu, esat gatavs sākt kodēšanu.

Pilns avota kods ir pieejams a GitHub repozitorijs.

Importējiet Fitz moduli

Importējiet PyMuPDF bibliotēkas fitz moduli. Tas ļaus jums zvanīt un izmantot atbalstītās funkcijas.

imports fitz

Jūs izmantosiet fitz, lai atvērtu, šifrētu, atšifrētu un saglabātu PDF failus.

instagram viewer

Pārbaudiet, vai PDF fails ir šifrēts

Izveidojiet funkciju, kas pārbaudīs, vai PDF fails jau ir šifrēts, atgriežot Būla vērtību.

defpdf_is_šifrēts(fails):
pdf = fitz. Dokuments (fails)
atgriezties pdf.isEncrypted

Šo funkciju izmantosit vēlāk, lai palīdzētu programmai automātiski izlemt, vai šifrēt vai atšifrēt ievades PDF failu.

PDF faila šifrēšana

Izveidojiet funkciju, lai šifrētu ievades PDF. Funkcija pārbaudīs, vai PDF fails jau ir šifrēts. Ja tas nav šifrēts, tas šifrēs to, izmantojot AES-256 algoritms. Šis ir spēcīgākais fitz piedāvātais šifrēšanas algoritms. Tas beidzot saglabās šifrēto PDF failu.

defšifrēt_pdf_failu(pdf, parole, fails, fails):
ja pdf_is_encrypted (fails):
ilgviļņi = int(
# Pārliecinieties, ka visi ar PDF
# var tai piekļūt
fitz. PDF_PERM_ACCESSIBILITY
| fitz. PDF_PERM_PRINT # atļauj drukāt
| fitz. PDF_PERM_COPY # atļauj kopēšanu
| fitz. PDF_PERM_ANNOTATE # atļauj anotācijas
)

# e-šifrēšanas algoritms
encrypt_meth = fitz. PDF_ENCRYPT_AES_256

pdf.save (outfile, encryption=encrypt_meth, user_pw=password,
atļaujas=perm)

ja pdf.save:
drukāt ("PDF šifrēts")

Šī funkcija saglabā šifrēto PDF failu faila ceļā, kuru norādījāt argumentā Outfile.

Šifrētā PDF faila atšifrēšana

Izveidojiet atšifrēšanas funkciju. Šī funkcija vispirms pārbaudīs, vai ievades fails ir šifrēts. Ja tas ir šifrēts, tas liks lietotājam ievadīt paroli. Pēc tam tas mēģinās atvērt PDF failu, izmantojot norādīto paroli. Ja parole ir pareiza, fitz atšifrēs PDF failu. Pēc tam atšifrētā PDF faila saturs tiks saglabāts citā neaizsargātā PDF failā.

defatšifrēt_pdf(fails):
ja pdf_is_encrypted (fails):
parole = ievade ("Ievadiet pdf paroli:")
pdf = fitz.open (fails)

ja pdf.authenticate (parole):
pdf.save("atšifrēts.pdf")

ja pdf.save:
drukāt ("PDF atšifrēts")
cits:
drukāt ('Nepareiza parole')

Šis kods saglabā neaizsargāto PDF failu jūsu pašreizējā darba direktorijā.

The ir atšifrējis aizsargāts.pdf failu un saglabāja to kā atšifrēts.pdf.

Programmas plūsmas kontrole

Izveidojiet galveno funkciju, kas kontrolēs jūsu programmas plūsmu. Tas saglabās ievades PDF ceļu, izsauks šifrēšanas un atšifrēšanas funkcijas un nodos ievades parametrus.

defgalvenais():
# aizstājiet faila ceļu ar kādu no
# pdf, kas jāšifrē vai jāatšifrē
fails = "sample.pdf"
pdf = fitz.open (fails)
parole = 'pass123'
encrypt_pdf_file (pdf, parole, 'protected.pdf', fails)
atšifrēt_pdf (pdf)

Lai mainītu šifrētā PDF faila nosaukumu, aizstājiet "protected.pdf" ar savu, saglabājot paplašinājumu ".pdf".

Galvenās metodes palaišana

Vispirms pārliecinieties, vai galvenā metode tiek palaista:

ja __nosaukums__ == '__galvenais__':
galvenais ()

Šis kods pārbauda, ​​vai skripts tiek palaists kā galvenā programma, nevis importēts modulis. Ja tā ir galvenā programma, tā izsauc galveno funkciju.

Uzlabojiet savas Python prasmes

PDF šifrēšanas/atšifrēšanas programmas izveide programmā Python ir jautrs, bet izaicinošs projekts. Tas palīdz praktizēt savas Python prasmes un apgūt failu apstrādi ar valodu.

Lai uzlabotu savas prasmes, jums vajadzētu strādāt pie vairākiem Python projektiem. Tas palīdzēs jums mijiedarboties ar vairākām Python bibliotēkām un moduļiem. Python ir ļoti daudzveidīgs, un to var izmantot daudzās jomās, lai veiktu dažādus uzdevumus.