2010-10-28 44 views
6

¿es posible verificar si el pdf está protegido con contraseña usando ghostscript? ¿cuál sería el comando? Sé que puede quitar la contraseña en pdf usando ghostscript, , pero todo lo que quiero hacer es verificar si el PDF está protegido con contraseña o si la seguridad está habilitada.¿es posible verificar si el pdf está protegido con contraseña usando ghostscript?

+0

Al haber comenzado una recompensa, también me gustaría saber si es posible detectar archivos PDF protegidos con contraseña con otras herramientas. – Benoit

Respuesta

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 

cheques para archivos PDF protegidos contraseña de usuario: checkuserpasswdPDF.sh test.pdf.

GS no tiene en cuenta las contraseñas del propietario (consulte this).

+0

humm esto parece prometedor, voy a intentar esto – Aman

2

Con pdftk es posible detectar una contraseña de usuario o una contraseña de propietario simplemente tratando de hacer una operación dump_data.

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

El problema aquí es que usted no sabe cuál es la contraseña impide: la lectura, la extracción de datos, la modificación de ...?

+1

intenté algo similar, pero era limitante y pdftk no siempre me daba el resultado correcto. – Aman

0

Usando un archivo bat, puede hacer una pequeña solución buscando "Encrypt" en el pdfs. Es rápido y silencioso para buscar en muchos archivos.

Findstr /M /I "Encrypt" *.pdf 

Esto devolverá todos los nombres de los archivos que están protegidos (ya que "Cifrar" se escribirá en el archivo como lo lee dos)

Tal vez esto es algo que alguien puede usar. Yo uso:
for /f %%a in ('Findstr /M /I "Encrypt" *.pdf') do move %%a c:\tempfiles\
para mover todos los PDF asegurados a c: \ tempfiles. A partir de ahí, uso ghostscript para eliminar la seguridad y volver a moverla a la carpeta original.

Cuestiones relacionadas