2008-09-08 6 views
2

Obwohl die PDF specification von Adobe verfügbar ist, ist es nicht gerade das einfachste Dokument zum Durchlesen. PDF ermöglicht das Verschlüsseln von Dokumenten, so dass entweder ein Benutzerpasswort und/oder ein Besitzerpasswort benötigt wird, um verschiedene Dinge mit dem Dokument zu tun (Anzeigen, Drucken, usw.). Häufig wird eine PDF-Datei gesperrt, damit Endbenutzer sie lesen können, ohne ein Kennwort einzugeben. Für alles andere ist jedoch ein Kennwort erforderlich.Wie entschlüsselt man ein PDF mit einem Besitzerpasswort, aber kein Benutzerpasswort?

Ich versuche, PDFs, die auf diese Weise gesperrt sind, zu analysieren (um die gleichen Berechtigungen zu erhalten, wie Sie sie in jedem Leser öffnen würden). Die Verwendung einer leeren Zeichenfolge als Benutzerkennwort funktioniert nicht, aber es scheint (Abschnitt 3.5.2 der Spezifikation), dass ein Benutzerkennwort vorhanden sein muss, um den Hash für das Administratorkennwort zu erstellen.

Was ich möchte, ist entweder eine Erklärung, wie dies zu tun ist, oder Code, den ich lesen kann (idealerweise Python, C oder C++, aber alles lesbare tut), das tut, damit ich verstehen kann, was ich Ich soll es tun. Eigenständiger Code wäre besser als das Durchlesen (z. B.) der gsview-Quelle.

+0

Auch nur in einem Viewer öffnen, wenn ich ein solches PDF erstellen, wird es mit Einschränkungen geöffnet, aber es scheint keine Möglichkeit für mich zu geben, mein Besitzer-Passwort, um Einschränkungen zu entfernen. Scheint nutzlos. – Marius

Antwort

1

Ein Plugin für GSview zum Anzeigen verschlüsselter PDFs ist here.

Wenn dies für Sie funktioniert, können Sie möglicherweise die Quelle anzeigen.

1

Wenn ich mich richtig erinnere, gibt es eine feste Füllzeichenfolge von 32 (?) Bytes für jedes Passwort. Alle Kennwörter müssen zu Beginn der Berechnung des Verschlüsselungsschlüssels 32 Byte sein, entweder durch Abschneiden oder Hinzufügen einiger dieser Füllbytes.

Wenn kein Benutzerkennwort festgelegt wurde, müssen Sie lediglich alle 32 Byte der Zeichenfolge auffüllen, d. H. Die 32 Füllbytes als Ausgangspunkt für die Berechnung des Verschlüsselungsschlüssels verwenden.

Ich muss zugeben, es ist eine Weile her seit ich das gemacht habe, ich erinnere mich, dass der Verschlüsselungsteil der PDF ein absolutes Durcheinander ist, da er sich in fast jeder Revision signifikant verändert hat Fälle, um alle PDFs zu behandeln.

Viel Glück.

0

xpdf ist wahrscheinlich eine gute Referenzimplementierung für diese Art von Problem. Ich habe sie erfolgreich benutzt, um verschlüsselte pdfs vorher zu öffnen.