Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Unbefugter Zugriff auf vertrauliche Dateien ist heute ein häufiges Problem. Um sicherzustellen, dass nur die von Ihnen autorisierten Personen auf den Inhalt Ihrer Dateien zugreifen können, können Sie diese vor der Übertragung verschlüsseln.

Erfahren Sie, wie Sie eine PDF-Datei mit Python verschlüsseln und wieder in ihren ursprünglichen Zustand entschlüsseln.

Einrichten der Umgebung

Um mitzumachen, sollten Sie mit dem vertraut sein Grundlagen von Python.

Führen Sie auf einem Mac-Terminal oder einer Windows-Befehlszeilenschnittstelle den folgenden Befehl aus, um die PyMuPDF-Bibliothek zu installieren:

pip installiert PyMuPDF

Diese Bibliothek hilft Ihnen beim Öffnen und Bearbeiten von PDF-Dateien.

Wenn Sie mit der Installation von PyMuPDF fertig sind, können Sie mit dem Codieren beginnen.

Der vollständige Quellcode ist verfügbar in a GitHub-Repository.

instagram viewer

Importieren Sie das Fitz-Modul

Importieren Sie das Fitz-Modul der PyMuPDF-Bibliothek. Dadurch können Sie die unterstützten Funktionen aufrufen und verwenden.

importieren fitz

Sie werden Fitz verwenden, um die PDFs zu öffnen, zu verschlüsseln, zu entschlüsseln und zu speichern.

Überprüfen Sie, ob das PDF verschlüsselt ist

Erstellen Sie eine Funktion, die überprüft, ob das PDF bereits verschlüsselt ist und einen booleschen Wert zurückgibt.

defpdf_ist_verschlüsselt(Datei):
pdf = fitz. Ordner)
zurückkehren pdf.isEncrypted

Sie werden diese Funktion später verwenden, um dem Programm zu helfen, automatisch zu entscheiden, ob das Eingabe-PDF verschlüsselt oder entschlüsselt werden soll.

PDF verschlüsseln

Erstellen Sie eine Funktion zum Verschlüsseln der Eingabe-PDF. Die Funktion prüft, ob das PDF bereits verschlüsselt ist. Wenn es nicht verschlüsselt ist, wird es mit verschlüsselt der AES-256-Algorithmus. Dies ist der stärkste Verschlüsselungsalgorithmus, den fitz anbietet. Es wird schließlich das verschlüsselte PDF speichern.

defencrypt_pdf_file(pdf, Passwort, Outfile, Datei):
Wennnicht pdf_is_encrypted (Datei):
perm = int(
# Sichern Sie alle mit dem PDF
# kann darauf zugreifen
fitz. PDF_PERM_ACCESSIBILITY
| fitz. PDF_PERM_PRINT # erlaubt das Drucken
| fitz. PDF_PERM_COPY # erlaubt das Kopieren
| fitz. PDF_PERM_ANNOTATE # erlaubt Anmerkungen
)

# eEncryption-Algorithmus
encrypt_meth = fitz. PDF_ENCRYPT_AES_256

pdf.save (outfile, Verschlüsselung=encrypt_meth, user_pw=password,
Berechtigungen=perm)

Wenn pdf.speichern:
drucken("PDF verschlüsselt")

Diese Funktion speichert die verschlüsselte PDF-Datei in dem Dateipfad, den Sie im outfile-Argument übergeben.

Entschlüsseln der verschlüsselten PDF

Erstellen Sie eine Entschlüsselungsfunktion. Diese Funktion prüft zunächst, ob die Eingabedatei verschlüsselt ist. Wenn es verschlüsselt ist, wird der Benutzer aufgefordert, das Passwort einzugeben. Es wird dann versuchen, das PDF mit dem angegebenen Passwort zu öffnen. Wenn das Passwort korrekt ist, entschlüsselt fitz das PDF. Anschließend wird der Inhalt der entschlüsselten PDF-Datei in einer anderen ungeschützten PDF-Datei gespeichert.

defentschlüsseln_pdf(Datei):
Wenn pdf_is_encrypted (Datei):
Passwort = Eingabe ('PDF-Passwort eingeben: ')
pdf = fitz.open (Datei)

Wenn pdf.authenticate (Passwort):
pdf.speichern('entschlüsselt.pdf')

Wenn pdf.speichern:
drucken("PDF entschlüsselt")
anders:
drucken('Falsches Passwort')

Dieser Code speichert das ungeschützte PDF in Ihrem aktuellen Arbeitsverzeichnis.

Der hat die entschlüsselt geschützt.pdf Datei und gespeichert als entschlüsselt.pdf.

Steuerung des Programmflusses

Erstellen Sie eine Hauptfunktion, die den Ablauf Ihres Programms steuert. Es speichert den Pfad der Eingabe-PDF, ruft die Verschlüsselungs- und die Entschlüsselungsfunktion auf und übergibt die Eingabeparameter.

defhauptsächlich():
# Ersetzen Sie den Dateipfad entweder durch den von
# das zu verschlüsselnde oder zu entschlüsselnde PDF
Datei = 'Beispiel.pdf'
pdf = fitz.open (Datei)
Passwort = 'pass123'
encrypt_pdf_file (pdf, Passwort, 'geschützt.pdf', Datei)
entschlüsseln_pdf (pdf)

Um den Namen der verschlüsselten PDF-Datei zu ändern, ersetzen Sie „protected.pdf“ durch Ihren eigenen und achten Sie darauf, die Erweiterung „.pdf“ beizubehalten.

Ausführen der Main-Methode

Stellen Sie sicher, dass die Hauptmethode zuerst ausgeführt wird:

Wenn __name__ == '__hauptsächlich__':
hauptsächlich()

Dieser Code prüft, ob das Skript als Hauptprogramm und nicht als importiertes Modul ausgeführt wird. Wenn es das Hauptprogramm ist, ruft es die Hauptfunktion auf.

Erweitern Sie Ihre Python-Fähigkeiten

Das Erstellen eines PDF-Verschlüsselungs-/Entschlüsselungsprogramms in Python ist ein lustiges, aber herausforderndes Projekt. Es hilft Ihnen, Ihre Python-Fähigkeiten zu üben und den Umgang mit Dateien mit der Sprache zu meistern.

Um Ihre Fähigkeiten zu erweitern, sollten Sie an mehr Python-Projekten arbeiten. Dies hilft Ihnen bei der Interaktion mit mehr Python-Bibliotheken und -Modulen. Python ist sehr vielfältig und Sie können es in vielen Bereichen einsetzen, um unterschiedliche Aufgaben zu erledigen.