PDF mit Passwort schützen und Berechtigungen ändern -> Python?
Hallo ich würde gerne eine PDF mit einem Passwort schützen. Ich möchte, dass die PDF aber nicht mit diesem Passwort zu öffnen ist, sondern das Passwort etwa dazu gebraucht wird um den Schutz zu entfernen.
Wir haben so einen "Schutz", der aber sehr leicht umgehbar ist.
Daher würde ich gerne hierzu etwas Programmieren.
Ich möchte folgende Funktionen:
- ich als Nutzer Schütze das Dokument mit dem Passwort 12345
Wenn das erfolgt, so kann der Nutzer folgendes nicht mehr tun:
- keine Änderungen Dokument
- Drucken in hoher AUflösung nicht mehr möglich
- Kommentieren möglich
- Drucken möglich
- Kopieren von Inhalt nicht mehr möglich
- Formularfelder ausfüllen nicht mehr möglich
- Dokumentzusammenstellung nicht mehr möglich (weiß grad net was das ist)
- Kopieren von Inhalt für Barrierefreiheit nicht mehr möglich
Kennt wer ein gutes Modul/Module, wo man das recht easy mittely Python umsetzen kann ? Danke im Voraus :)
1 Antwort
Solche Passwörter sind immer einfach zu umgehen und daher sinnlos. Sie funktionieren nur, wenn man einen PDF Reader verwendet, der diese Einschränkungen umsetzt. Man muss also nur einen PDF Reader verwenden, der alle Einschränkungen ignoriert. Du kannst ja nicht kontrollieren, mit welchem PDF Reader andere deine PDFs öffnen. Es ist sogar möglich, das Passwort vollständig zu entfernen, sodass Änderungen wieder mit jedem beliebigen PDF Reader möglich sind.
Ich kenne dein Bedrohungsszenario nicht, aber bei PDFs muss man davon ausgehen, dass jeder damit machen kann, was er will.
Ist doch scheißegal, da letztlich von dem Anspruch abhängig. Und hierfür reicht MD5 aus.
Es geht mir um das o.a. Szenario, weniger jetzt darum ob das sonstwie noch sicher ist. Ich kann ja lokal zusätzlich durch MD5 o.a. und Archivierung sichern um eine nachträgliche Manipulation beweisen zu können. Apose kostet Geld. Die anderen Lösungen sind naja.. sie funktionieren bei mir nicht. Ich versuch rad fleißig mit KI was hinzufummeln, aber die weiß uach net so recht. Die jeweiligen Stellen werden jedenfalls durch die Bitstellen umgeschaltet/gelöst. Nur die Änderungen werden bei meinem Skript noch nicht erfolgreich übernommen :(