iT邦幫忙

1

請問有沒有辦法在開PDF時先用某些密碼解密文件

  • 分享至 

  • xImage

如題
希望可以不要再打身份證字號、統編、末四碼、生日了。
有沒有某些PDF閱讀器支援這類操作,如果支援瀏覽器或是ThunderBird更好
若能進一步把收件夾內PDF能解密的解一解更讚

是說是不是只有臺灣會用這種東西加密帳單之類的,日本好像是用zip加密/images/emoticon/emoticon06.gif

很困難,因為PDF 內至少可以存放兩組密碼以上,而且因為版本加密層級會有所差異,然後如果是固定檔案,透過瀏覽器開啟是可以輸入一次讓瀏覽器去記憶,可是不同檔案就很困難,尤其是每個月帳單這種的,每次檔名都不一樣,真的蠻困難的
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0

是可以用工具來將已知密碼的PDF,解除密碼。
但如果想要在網頁程式上運做的話。
目前的確也不知道用什麼招式就是了。

由於這樣的需求度極少,所以我也沒去研究。
只知道如何做加密。

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-10-19 14:27:39

2020年有人說 Acrobat Reader 沒支援
2017年的PDF.JS好像可以做得到
有空可以試用看看
若可行再回來分享一下
/images/emoticon/emoticon41.gif

黃彥儒 iT邦高手 1 級 ‧ 2022-10-19 15:21:52 檢舉

我沒有要造輪子,就只是想問問網友有沒有現成的

如果PDF.JS不算是現成的
那我的答案就改成:沒有
/images/emoticon/emoticon25.gif

黃彥儒 iT邦高手 1 級 ‧ 2022-10-19 15:28:28 檢舉

夢中出現一個瀏覽器外掛+雷鳥外掛+Outlook外掛

3
japhenchen
iT邦超人 1 級 ‧ 2022-10-19 16:03:45

我用python做範例,但要你知道密碼是什麼,才能把密碼剝除

假設你懂python且會os.walk爬整個資料夾(包含子資料夾)

本例只教拆除已知密碼,絕不教破解

from PyPDF2 import PdfFileWriter, PdfFileReader #自己pip PyPDF2吧

def depass(filenamePDF,password): #檔名跟密碼
    infile = PdfFileReader(filenamePDF) #打開來源PDF
    outfile = PdfFileWriter()  #建立一個空PDF
    infile.decrypt(password) #再把密碼解除,當然你要提供密碼
    for i in range(infile.numPages):
        page = infile.getPage(i) #從來源一頁一頁讀出
        outfile.addPage(page) #一頁一頁寫進 空的PDF 裡
    with open(filenamePDF, "wb") as f: # 回寫到原來的PDF檔名 啊檔案操作一定要懂
        outfile.write(f) 
看更多先前的回應...收起先前的回應...
黃彥儒 iT邦高手 1 級 ‧ 2022-10-19 16:06:56 檢舉

恩…這我熟
但我就是懶,想找現成的

黃彥儒 iT邦高手 1 級 ‧ 2022-10-19 16:08:11 檢舉

是說,為什麼解密是在輸出檔案,我記得應該是在
infile = PdfFileReader(filenamePDF)
的下一行就可以接
infile.decrypt("my-secret-password") 了?

reader跟writer不能同時使用在一個變數上....

靠妖,我寫錯地方,要先 infile.decrypt('yourpassword')再一頁一頁add進writer裡......

急著回覆忘了驗證

黃彥儒 iT邦高手 1 級 ‧ 2022-10-19 16:42:42 檢舉

登愣~抓到你的蟲了/images/emoticon/emoticon01.gif

這各要知道主要密碼才有用啊,很多開啟密碼跟主要密碼都是不一樣的,尤其是銀行帳單,你沒有主要密碼根本別想改開啟密碼

實際上 PDF 至少有三個密碼,很多變態的銀行會把主要密碼弄成 256位元的亂碼隨便填進去,而且用 AES256加密,然後他會去抓客戶資料的ID當開啟密碼,另外還有一個是編輯密碼,有些商用系統會特別設定這個,因為某些狀況這些PDF需要去重新編輯的話,沒有這個密碼很麻煩,同樣的變態的銀行也是會跟主要密碼一樣用亂數產生填進去,所以,編輯密碼也是無解的
然後聽說還有列印密碼,印象是某個版本之後的PDF可以用,預設是列印鎖定,然後要印必須給密碼

這也只有在已知密碼的情況下可處理,至於3道密碼也只能用枚舉的方式解決,此外,也要考慮到加密跟PDF版本的狀況,沒有一個完美的解法,但,可以嚐試倒是真的

黃彥儒 iT邦高手 1 級 ‧ 2022-10-20 11:39:16 檢舉

我不覺得隨機產生的256位元的主密碼能夠通過枚舉產生…和哥的粗體字衝突啦

枚舉已知密碼~~一個個decrypt

我要發表回答

立即登入回答