返回作品列表
實用工具 · Python 桌面

PDF 解鎖

移除 PDF 開啟密碼

輸入你已經知道的密碼,輸出一份不再上鎖的副本——把「每次開檔都要打密碼」的麻煩,一次解決。

類型
Windows 桌面小工具(GUI)
語言 / 介面
Python · Tkinter
核心函式庫
PyPDF2(支援 AES)
打包
PyInstaller 單檔 exe
授權
MIT
PDF Unlocker 解鎖工具 ─ □ ✕
已選擇:contract_secured.pdf
專案概覽

一個視窗、一組密碼,去掉每次開檔的那道關卡

有些 PDF 設了開啟密碼,每次打開都得重新輸入一次,久了很煩。這支小工具的用途很單純:對於你本來就知道密碼的 PDF,輸入一次密碼,就輸出一份移除密碼、之後開啟免輸入的副本。

它不是破解工具——密碼錯了就解不開,這由 PyPDF2 的解密流程把關。整個程式只有一個 450×250 的固定大小視窗,三個動作就走完:選檔、輸入密碼、另存。原始檔不動,結果另存成新檔,原本的加密檔保留在原處。

怎麼運作

三步驟,就這樣

1

選擇 PDF

按「選擇 PDF 檔案」,挑出那份設了密碼的 PDF,視窗上方會顯示已選檔名。

2

輸入密碼

在密碼框輸入你已知的開啟密碼(以圓點遮蔽顯示),按下綠色的「解鎖並另存」。

3

另存副本

選擇儲存位置,輸出檔名自動帶上 _無密碼;完成後自動開啟所在資料夾。

實作重點

小工具,但細節有想過

1

逐頁重寫,輸出乾淨副本

解密後以 PdfWriter 將每一頁逐一寫入新檔,而非在原檔上動手腳。原始加密檔完整保留,結果是一份獨立的無密碼 PDF。

2

支援 AES 加密

打包時以 --hidden-import=Crypto 帶入相依套件,確保使用 AES 加密的 PDF 也能正確解密——這類檔案常因缺少加密後端而在其他工具上失敗。

3

貼心的預設輸出檔名

另存時自動把原檔名加上 _無密碼 作為預設檔名,省去手動命名,也一眼分得出哪份是已解鎖的版本。

4

該擋的狀況都先擋

沒選檔、沒輸入密碼會先跳提示;解密或寫入若出錯,以對話框回報實際錯誤訊息,而不是默默失敗。

5

免安裝的單檔 exe

以 PyInstaller --onefile --noconsole 打包成單一執行檔,沒有黑色主控台視窗、雙擊即用,內含版本資訊(MIT 授權)。

使用前提

這個工具是為了移除「你自己擁有、且知道密碼」的 PDF 的開啟密碼而設計,方便日後免輸入開啟。它無法繞過未知的密碼,也不應被用於未經授權的文件。請在自己有權處理的檔案上使用。

技術棧總覽

從腳本到單檔 exe

核心Python · PyPDF2(PdfReader / PdfWriter,解密與逐頁重寫)
介面Tkinter(檔案選擇、密碼輸入、另存對話框、訊息提示)
加密支援pycryptodome(Crypto)— 支援 AES 加密的 PDF
打包PyInstaller --onefile --noconsole · 內嵌版本資訊
平台 / 授權Windows · MIT License
下載 · Download
PDF Unlocker(PDFUnlocker.exe)

單一執行檔,免安裝、雙擊即用,無主控台視窗。原始碼以 MIT 授權於 GitHub 公開。

PDFUnlocker.exe · 約 15 MB · 即將提供 在 GitHub 檢視原始碼 · MIT
執行檔未經數位簽章,Windows SmartScreen 可能顯示「未知發行者」,點「其他資訊 → 仍要執行」即可。需先知道 PDF 的正確密碼才能解鎖;解鎖結果會另存為新檔,原始加密檔保留不動。