2010-10-28 4 views
6

ist es möglich, zu überprüfen, ob PDF mit ghostscript passwortgeschützt ist? was wäre der Befehl? Ich weiß, Sie können PDF-Passwort mit Ghostscript, entzippen, aber alles, was ich tun möchte, ist nur zu prüfen, ob PDF passwortgeschützt oder Sicherheit aktiviert ist.ist es möglich, zu prüfen, ob pdf mit ghostscript passwortgeschützt ist?

+0

Nachdem ich ein Bounty gestartet habe, möchte ich auch wissen, ob es möglich ist, passwortgeschützte PDFs mit anderen Tools zu erkennen. – Benoit

Antwort

4

checkuserpasswdPDF.sh:

#!/bin/sh 

GS=~/gs/bin/gs 
output=`$GS -dBATCH -sNODISPLAY "$1" 2>&1` 
gsexit=$? 

if [ "$gsexit" == "0" ]; then 
    echo "Not user-password protected" 
    exit 0; 
else 
    found=`echo "$output" |grep -o "This file requires a password"` 
    if [ -z "$found" ]; then 
    echo "Failed to invoke gs" 
    exit $gsexit 
    else 
    echo "Protected" 
    exit 0; 
    fi 
fi 

Checks für Benutzer-Passwort geschützt PDFs: checkuserpasswdPDF.sh test.pdf.

GS ignoriert Besitzer-Passwörter (siehe this).

+0

Humm dies sieht vielversprechend aus, werde ich dies versuchen – Aman

2

Mit pdftk ist es möglich, ein Benutzerkennwort oder ein Besitzerkennwort zu erkennen, indem Sie einfach versuchen, eine dump_data Operation durchzuführen.

protected=0 
pdftk "input.pdf" dump_data output /dev/null dont_ask || protected=1 

Das Problem hierbei ist, dass Sie nicht wissen, was das Passwort verhindert: Lesen, Extrahieren von Daten, Ändern ...?

+1

Ich versuchte etwas ähnliches, aber es war einschränkend und pdftk gab mir nicht immer das richtige Ergebnis. – Aman

0

Mithilfe einer Fledermausdatei können Sie eine kleine Abhilfe schaffen, indem Sie in den PDFs nach "Verschlüsseln" suchen. Es ist schnell ruhig, um viele Dateien zu durchsuchen.

Findstr /M /I "Encrypt" *.pdf 

Dadurch werden alle Dateinamen zurück, die gesichert werden (da „Verschlüsseln“ in die Datei geschrieben werden, wie dos es liest)

Vielleicht ist das etwas, das jemand verwenden können. Ich verwende:
for /f %%a in ('Findstr /M /I "Encrypt" *.pdf') do move %%a c:\tempfiles\
, um alle gesicherten PDFs nach c: \ tempfiles zu verschieben. Von dort verwende ich ghostscript, um die Sicherheit zu entfernen, und verschiebe sie zurück in den ursprünglichen Ordner.

Verwandte Themen