Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Luvaton pääsy arkaluonteisiin tiedostoihin on nykyään yleinen ongelma. Varmistaaksesi, että vain valtuutetuilla henkilöillä on pääsy tiedostojesi sisältöön, voit salata ne ennen lähettämistä.

Opi salaamaan PDF-tiedosto Pythonilla ja purkamaan salaus takaisin alkuperäiseen tilaan.

Ympäristön asettaminen

Jotta voit seurata mukana, sinun tulee olla perehtynyt Pythonin perusteet.

Asenna PyMuPDF-kirjasto suorittamalla seuraava komento Mac-päätteessä tai Windowsin komentorivikäyttöliittymässä:

pip asennus PyMuPDF

Tämä kirjasto auttaa sinua avaamaan ja käsittelemään PDF-tiedostoja.

Kun olet asentanut PyMuPDF: n, olet valmis aloittamaan koodauksen.

Täysi lähdekoodi on saatavilla a GitHub-arkisto.

Tuo Fitz-moduuli

Tuo PyMuPDF-kirjaston fitz-moduuli. Näin voit soittaa ja käyttää sen tukemia toimintoja.

tuonti fitz

Käytät fitziä PDF-tiedostojen avaamiseen, salaamiseen, salauksen purkamiseen ja tallentamiseen.

instagram viewer

Tarkista, onko PDF salattu

Luo funktio, joka tarkistaa, onko PDF jo salattu ja palauttaa loogisen arvon.

defpdf_on_salattu(tiedosto):
pdf = fitz. Asiakirja (tiedosto)
palata pdf.isEncrypted

Käytät tätä toimintoa myöhemmin auttaaksesi ohjelmaa automaattisesti päättämään, salataanko vai puretaanko syötettävä PDF.

PDF-tiedoston salaus

Luo funktio syötettävän PDF: n salaamiseksi. Toiminto tarkistaa, onko PDF jo salattu. Jos sitä ei ole salattu, se salaa sen käyttämällä AES-256-algoritmi. Tämä on vahvin fitzin tarjoama salausalgoritmi. Lopulta se tallentaa salatun PDF-tiedoston.

defencrypt_pdf_file(pdf, salasana, tiedosto, tiedosto):
josei pdf_is_encrypted (tiedosto):
perm = int(
# Varmista, että kaikki saavat PDF-tiedoston
# voi käyttää sitä
fitz. PDF_PERM_ACCESSIBILITY
| fitz. PDF_PERM_PRINT # sallii tulostamisen
| fitz. PDF_PERM_COPY # sallii kopioinnin
| fitz. PDF_PERM_ANNOTATE # sallii huomautukset
)

# eEncryption-algoritmi
encrypt_meth = fitz. PDF_ENCRYPT_AES_256

pdf.save (outfile, encryption=encrypt_meth, user_pw=salasana,
luvat=perm)

jos pdf.save:
Tulosta("PDF-salattu")

Tämä toiminto tallentaa salatun PDF: n tiedostopolkuun, jonka välität outfile-argumentissa.

Salatun PDF-tiedoston salauksen purku

Luo salauksenpurkutoiminto. Tämä toiminto tarkistaa ensin, onko syöttötiedosto salattu. Jos se on salattu, se kehottaa käyttäjää antamaan salasanan. Se yrittää sitten avata PDF-tiedoston antamalla salasanalla. Jos salasana on oikea, fitz purkaa PDF-tiedoston. Se tallentaa sitten salauksen puretun PDF-tiedoston sisällön toiseen suojaamattomaan PDF-tiedostoon.

defdecrypt_pdf(tiedosto):
jos pdf_is_encrypted (tiedosto):
salasana = input('Anna pdf-salasana:')
pdf = fitz.open (tiedosto)

jos pdf.authenticate (salasana):
pdf.save('decrypted.pdf')

jos pdf.save:
Tulosta("PDF purettu")
muu:
Tulosta('Väärä salasana')

Tämä koodi tallentaa suojaamattoman PDF-tiedoston nykyiseen työhakemistoosi.

The on purkanut salauksen suojattu.pdf tiedosto ja tallentanut sen nimellä purettu.pdf.

Ohjelman kulun hallinta

Luo päätoiminto, joka ohjaa ohjelman kulkua. Se tallentaa syötettävän PDF-tiedoston polun, kutsuu salaus- ja salauksenpurkutoiminnot ja välittää syöttöparametrit.

defpää():
# korvaa tiedostopolku jommallakummalla
# salattava tai purettava pdf
tiedosto = "sample.pdf"
pdf = fitz.open (tiedosto)
salasana = 'pass123'
encrypt_pdf_file (pdf, salasana, "suojattu.pdf", tiedosto)
decrypt_pdf (pdf)

Jos haluat muuttaa salatun PDF-tiedoston nimen, korvaa "protected.pdf" omalla nimelläsi ja muista säilyttää ".pdf"-pääte.

Päämenetelmän suorittaminen

Varmista, että päämenetelmä suoritetaan ensin:

jos __nimi__ == '__main__':
pää()

Tämä koodi tarkistaa, ajetaanko komentosarjaa pääohjelmana eikä tuotuna moduulina. Jos se on pääohjelma, se kutsuu pääfunktiota.

Kehitä Python-taitojasi

PDF-salaus-/salauksenpurkuohjelman luominen Pythonissa on hauska mutta haastava projekti. Se auttaa sinua harjoittelemaan Python-taitojasi ja hallitsemaan tiedostojen käsittelyä kielen kanssa.

Edistääksesi taitojasi sinun tulisi työskennellä useammissa Python-projekteissa. Tämä auttaa sinua olemaan vuorovaikutuksessa useiden Python-kirjastojen ja -moduulien kanssa. Python on hyvin monipuolinen ja voit soveltaa sitä monilla alueilla erilaisten tehtävien suorittamiseen.