2010-10-28 75 views
6

是否可以检查pdf是否使用ghostscript进行密码保护? 命令是什么? 我知道你可以使用ghostscript去掉pdf密码, 但我想要做的只是检查PDF是否受密码保护或启用了安全性。有可能检查pdf是否使用ghostscript进行密码保护?

+0

开始赏金后,我还想知道是否可以使用其他工具检测受密码保护的PDF。 – Benoit 2010-12-09 08:20:08

回答

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 

检查用户密码保护的PDF文件:checkuserpasswdPDF.sh test.pdf

GS不理会所有者密码(请参阅this)。

+0

humm这看起来很有前途,我会试试这个 – Aman 2010-12-10 11:20:09

2

使用pdftk只需尝试执行dump_data操作即可检测到用户密码或所有者密码。

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

这里的问题是,你不知道什么密码防止:阅读,提取数据,修改......?

+1

我试过类似的东西,但它是限制性的,pdftk并不总是给我正确的结果。 – Aman 2010-12-10 11:23:25

0

使用bat文件,您可以通过在pdf中搜索“加密”来做一些解决方法。它安静快速地搜索许多文件。

Findstr /M /I "Encrypt" *.pdf 

这将返回固定(因为“加密”将在文件中写为DOS读它)所有文件名

这也许是某个人可以使用。 我使用:
for /f %%a in ('Findstr /M /I "Encrypt" *.pdf') do move %%a c:\tempfiles\
将所有安全的pdf移动到c:\ tempfiles。从那里我使用ghostscript删除安全性,并将其移回原始文件夹。

相关问题