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