Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

Az érzékeny fájlokhoz való jogosulatlan hozzáférés manapság gyakori probléma. Annak érdekében, hogy csak az Ön által felhatalmazott személyek férhessenek hozzá a fájlok tartalmához, továbbítás előtt titkosíthatja azokat.

Ismerje meg, hogyan titkosíthat PDF fájlokat Python használatával, és hogyan lehet visszafejteni a titkosítást az eredeti állapotába.

A környezet beállítása

A követéshez ismernie kell a Python alapjai.

Mac terminálon vagy Windows parancssori felületen futtassa a következő parancsot a PyMuPDF könyvtár telepítéséhez:

pip telepítése PyMuPDF

Ez a könyvtár segít a PDF-fájlok megnyitásában és kezelésében.

Ha befejezte a PyMuPDF telepítését, készen áll a kódolás megkezdésére.

A teljes forráskód elérhető a GitHub adattár.

Importálja a Fitz modult

Importálja a PyMuPDF könyvtár fitz modulját. Ez lehetővé teszi az általa támogatott funkciók hívását és használatát.

instagram viewer
import fitz

A PDF-ek megnyitásához, titkosításához, visszafejtéséhez és mentéséhez a fitz-et fogja használni.

Ellenőrizze, hogy a PDF titkosítva van-e

Hozzon létre egy függvényt, amely ellenőrzi, hogy a PDF már titkosítva van-e, és logikai értéket ad vissza.

defpdf_titkosított(fájl):
pdf = fitz. Dokumentum (fájl)
Visszatérés pdf.isEncrypted

Ezt a funkciót később arra fogja használni, hogy a program automatikusan eldöntse, titkosítja vagy visszafejti a bemeneti PDF-fájlt.

A PDF titkosítása

Hozzon létre egy függvényt a bemeneti PDF titkosításához. A funkció ellenőrzi, hogy a PDF már titkosítva van-e. Ha nincs titkosítva, akkor a segítségével titkosítja az AES-256 algoritmus. Ez a Fitz által kínált legerősebb titkosítási algoritmus. Végül elmenti a titkosított PDF-et.

defencrypt_pdf_file(pdf, jelszó, outfile, fájl):
hanem pdf_is_encrypted (fájl):
perm = int(
# Győződjön meg róla, hogy mindenki a PDF-el
# elérheti
fitz. PDF_PERM_ACCESSIBILITY
| fitz. PDF_PERM_PRINT # nyomtatást engedélyez
| fitz. PDF_PERM_COPY # másolást engedélyez
| fitz. PDF_PERM_ANNOTATE # engedélyezi a megjegyzéseket
)

# eEncryption algoritmus
encrypt_meth = fitz. PDF_ENCRYPT_AES_256

pdf.save (outfile, encryption=encrypt_meth, user_pw=password,
engedélyek=perm)

ha pdf.save:
nyomtatás("PDF titkosítva")

Ez a funkció a titkosított PDF-fájlt az outfile argumentumban megadott fájlútvonalra menti.

A titkosított PDF visszafejtése

Hozzon létre egy visszafejtő funkciót. Ez a funkció először ellenőrzi, hogy a bemeneti fájl titkosított-e. Ha titkosított, akkor a jelszó megadására kéri a felhasználót. Ezután megpróbálja megnyitni a PDF-fájlt a megadott jelszóval. Ha a jelszó helyes, a fitz visszafejti a PDF titkosítását. Ezután a visszafejtett PDF tartalmát egy másik, nem védett PDF-fájlba menti.

defdecrypt_pdf(fájl):
ha pdf_is_encrypted (fájl):
jelszó = input('Adja meg a pdf jelszót:')
pdf = fitz.open (fájl)

ha pdf.authenticate (jelszó):
pdf.save("decrypted.pdf")

ha pdf.save:
nyomtatás("PDF visszafejtve")
más:
nyomtatás('Hibás jelszó')

Ez a kód a nem védett PDF-fájlt az aktuális munkakönyvtárba menti.

A visszafejtette a védett.pdf fájlt, és másként mentette el visszafejtve.pdf.

A program folyamatának szabályozása

Hozzon létre egy fő funkciót, amely szabályozza a program folyamát. Tárolja a bemeneti PDF elérési útját, meghívja a titkosítási és visszafejtési funkciókat, és átadja a bemeneti paramétereket.

deffő-():
# cserélje ki a fájl elérési útját a következőre:
# a titkosítandó vagy visszafejtendő pdf
fájl = "minta.pdf"
pdf = fitz.open (fájl)
jelszó = 'pass123'
encrypt_pdf_file (pdf, jelszó, 'protected.pdf', fájl)
decrypt_pdf (pdf)

A titkosított PDF-fájl nevének megváltoztatásához cserélje ki a "protected.pdf" fájlt a sajátjára, ügyelve arra, hogy a ".pdf" kiterjesztést megtartsa.

A fő módszer futtatása

Győződjön meg arról, hogy a fő módszer fut először:

ha __név__ == '__fő__':
fő()

Ez a kód ellenőrzi, hogy a szkript fő programként fut-e, és nem importált modulként. Ha ez a fő program, akkor meghívja a fő függvényt.

Fejlessze Python-készségeit

PDF titkosító/visszafejtő program létrehozása Pythonban szórakoztató, de kihívásokkal teli projekt. Segít gyakorolni Python-készségeit és elsajátítani a fájlkezelést a nyelvvel.

Képességeinek fejlesztése érdekében több Python-projekten kell dolgoznia. Ez segít több Python-könyvtárral és modullal való interakcióban. A Python nagyon sokrétű, és számos területen alkalmazható különféle feladatok elvégzésére.