2010-10-28 102 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刪除安全性,並將其移回原始文件夾。

相關問題