# PDF 解鎖 把密碼和那些限制一起去掉

大多數「加了密」的 PDF 其實根本不用密碼。這一頁會先告訴你手上是哪一種，再動它。

> 在瀏覽器裡去掉 PDF 的密碼，以及不許列印、不許複製、不許編輯這些限制。大多數被保護的檔案根本不用密碼，這一頁會告訴你手上是哪一種。什麼都不上傳，也從不猜密碼。

本頁是一個完全在你的瀏覽器裡執行的互動式工具，地址是 https://abox.tools/zh-TW/unlock-pdf/。你交給它的任何內容都不會被上傳。下面是這個頁面用文字對該工具的全部說明；要使用它，請開啟這個地址。

## 你的文件**不會上傳**。這裡根本沒有伺服器。

你選的那份文件，開啟、解密、寫回，全都在這臺機器的記憶體裡完成，用的是從這個地址發來的程式碼。這裡根本沒有能做上傳的東西，這一頁的另一頭也沒有伺服器可以接收。檔案不會離開這個分頁，你打進去的密碼也不會。

- ✗ 不上傳
- ✗ 不註冊
- ✓ 斷網可用
- ✓ 開源
- ✓ 檔案留在你的裝置上

## 怎麼去掉 PDF 的密碼或者那些限制

1. **選那份被保護的 PDF。** 一次一份文件。瀏覽器直接從你的硬碟上把它讀進來，而第一件發生的事，是拿一個空密碼去試它，而這正是大多數被保護的檔案能開啟的原因，因為它們大多數根本就沒被關上過。
2. **看這一頁找到了什麼。** 它會說這個檔案帶的是兩種保護裡的哪一種、用的是什麼方案、那個方案在今天值多少，並且列出這份文件請閱讀器遵守的每一條限制：列印、複製、編輯、註解、填表單、調整頁序，甚至朗讀給看不見的人聽。
3. **輸密碼，但只在它開口要的時候。** 密碼框只在空密碼沒能開啟這份文件的時候才出現，而那也是密碼唯一有用的時候。文件的兩個密碼哪個都行，開啟它的那個，或者解除限制的許可權密碼。這裡什麼都不猜，你打進去的東西也留在這個分頁裡。
4. **去掉它，然後讀那句寫著「已核對」的話。** 文件會用它自己的金鑰解密，再寫回去，出來的檔案裡連加密字典都沒有。接著做好的檔案會在這裡被重新開啟一次，不給密碼，用的是一個碰到加密文件就拒絕的讀取器。要是它打不開，或者頁數跟原來對不上，你不會拿到下載，只會拿到一句說明。

## 說得更細的版本

[How to unlock a PDF, and which kind of locked it is](https://abox.tools/zh-TW/guides/unlock-a-pdf/): A PDF that will not print and a PDF that will not open are two different problems with one name. What each of them actually is, why one comes off in a click and the other cannot come off at all, and how to tell which you have.

## 工具箱裡還有

- [PDF 塗黑](https://abox.tools/zh-TW/redact-pdf/): 字從檔案裡刪掉，然後再搜一遍這個檔案來證明。
- [PDF 轉 CSV](https://abox.tools/zh-TW/pdf-to-csv/): 把 PDF 裡的每一張表都找出來，變成表格軟體打得開的一行一行。
- [圖片轉 PDF](https://abox.tools/zh-TW/images-to-pdf/): 把你的圖片裝進一個文件。
- [文件掃描](https://abox.tools/zh-TW/document-scanner/): 把紙拍下來，回來的是一份看起來像掃描的東西。

## 常見問題

### 我需要密碼嗎？

通常不需要，而且選好檔案之後一秒之內這一頁就會告訴你。大多數「被保護」的 PDF，銀行對帳單、工資單、匯出的報表、辦公軟體那個「限制編輯」框做出來的東西，都是誰都打得開的，它們只是帶著一份請閱讀器不要做的事情清單。這些一鍵就能去掉，不用密碼。真正在你開啟時問你要密碼的，是另一種，那一種你得有密碼。

### 我沒有密碼的 PDF，它能開啟嗎？

不能，而且它根本不去試。這個工具裡沒有字典、沒有詞表，也沒有任何暴力搜尋，你可以自己讀 `src/crypt.js`，裡面連一個迴圈都沒有。對最老的那批 40 位金鑰的文件來說，搜尋確實是奏效的，正因為如此，這條拒絕才必須寫下來，而不是留給人去假定。如果你把自己文件的密碼弄丟了，這一頁幫不了你，任何一個誠實的頁面也幫不了。

### 兩個密碼有什麼區別？

一份 PDF 裡有兩個位置。*開啟密碼*是閱讀器向你要的那個，沒有它檔案就打不開。*許可權密碼*解除的是那些限制，列印、複製、編輯，而一份文件常常只有許可權密碼、根本沒有開啟密碼，這就是它誰都打得開、卻還是不肯列印的原因。這個工具兩個都收，並且會告訴你它究竟是靠哪一個進去的。

### 去掉這些限制合法嗎？

這取決於是哪份文件、你在哪裡，而且這是一個關於你對這個檔案有什麼權利的問題，不是關於技術的問題。能明說的是這個格式本身是怎麼回事：那些限制是文件裡面的一個欄位，閱讀器按約定去遵守它，它不是一道密碼學的牆，而 Adobe 從它被引入的那天起就是這麼寫的。這個工具是給你有權使用的文件用的，你自己那份打不出來的對帳單、你花錢買了卻複製不了的報告、你需要重排頁序的掃描檔。如果這個檔案本來就不該歸你用，這裡的任何東西都改變不了這一點。

### 它支援哪些加密方式？

公開發布過的每一種：40 位和 128 位的 RC4（修訂 2 和 3）、AES-128（修訂 4），以及 AES-256 的兩種形態，2008 年那個後來被撤回的版本和當前 PDF 2.0 的版本（修訂 5 和 6）。不支援的是基於證書的加密，那種情況下金鑰屬於一張智慧卡或者一個金鑰庫而不是一個密碼，另外還有 Adobe 那個唯一沒有公開的變體。這兩種都會被拒絕，並且說明它們分別是什麼，而不是含糊地失敗。

### 做完之後文件看上去會不一樣嗎？

不會。什麼都不會被重新渲染、重新編碼或者重排：每一頁的繪製指令、每一個嵌入字型、每一張圖片，都原樣複製過去。文字還能選，掃描檔還是原來的解析度，什麼都不會移位。檔案可能會小一點，因為一次重寫會把早先編輯留在裡面、已經被取代的舊物件丟掉。

### 帶簽名的文件會怎麼樣？

它的簽名會失效，而且沒有辦法繞過去。簽名覆蓋的是它當初籤的那個檔案的確切位元組，所以任何改動，任何程式做的，包括當初籤它的那個程式，都會讓它失效。這正是簽名的意義所在。這個工具寫的是一個新檔案，發現原件帶簽名時會在結果裡說明。把你的原件留著：那一份仍然是簽過名的。

### 我的文件或者密碼會被上傳到什麼地方嗎？

不會。檔案是你自己的瀏覽器在你自己的硬體上讀取、解密、寫出的，密碼進的是一段跑在這個分頁裡的金鑰推導。這個工具沒有伺服器那一端，頁面的 `Content-Security-Policy` 列出了它可以聯絡的每一個地址，其中沒有一個屬於本站。最簡單的驗證辦法，是把網線拔掉，照樣用這一頁。

### 我怎麼知道保護真的沒了？

因為這個工具會在你的機器上核對，並且把結果給你看。檔案寫好之後，它會被交給本站其他 PDF 工具用的同一個讀取器，一個碰到加密文件就直接拒絕的讀取器，而它必須在不給密碼的情況下開啟，並且頁數跟原來一樣。要是過不了，這次執行就報告為失敗，什麼都不會給你下載。你事後也可以自己驗：用任何一個閱讀器開啟它，去看文件屬性，那裡每一項許可權現在都應該寫著「允許」。

### 有大小限制嗎？要錢嗎？

工具裡沒有寫死任何限制。限制是你自己的機器：文件在處理的時候是放在記憶體裡的，幾百 MB 的量，一臺筆記本吃得下，再往上就會吃力。它是免費的，不註冊、不登入，也沒有試用期。本站帶廣告，那是養活它的東西；廣告拿不到任何關於你文件的內容。

### 斷網能用嗎？

能。把頁面載入一次，然後斷開網路，它照樣能用。這也是證明什麼都沒被上傳的最簡單的辦法：一個把你的文件發出去解鎖的工具，你一拔網線它就停了。

## 這條隱私承諾怎麼核實

- **大多數被保護的 PDF 根本沒有鎖上，這一頁在動手之前就會說明。** 一份 PDF 可以帶著兩種完全不同的東西。*開啟密碼*是真的：沒有它，這個檔案誰都讀不了，這裡也找不出來。*限制*，不許列印、不許複製、不許編輯，則不是。只帶著限制的檔案誰都打得開，這就意味著它必須自己裝著推匯出自身金鑰所需要的一切，因為你的閱讀器就是這麼推出來的。真正攔著閱讀器不讓列印的，是文件裡面的一個許可權欄位，靠的是行為端正的程式之間的約定。Adobe 從一開始就是這麼寫的。把它去掉不是在破解什麼，只是不再自願配合。這一頁會告訴你手上是兩種裡的哪一種，並且只在真的需要密碼的時候才開口要。
- **它不猜密碼，裡面也沒有哪個迴圈能拿來猜。** 如果一份文件有開啟密碼，那要麼你給出來，要麼它就一直關著。這裡沒有字典，沒有詞表，也沒有去碰 1990 年代那種真的搜得出來的 40 位金鑰。這是一條故意劃下的線，不是誰沒顧上補的缺口：一個悄悄替你試上幾百萬個密碼的頁面，是另一個名字的另一個工具，不是這一個。開啟文件的那個密碼，和解除限制的許可權密碼，兩個都收，因為不管哪一個，都是別人給你的密碼。
- **密碼在這裡打進去，也在這裡用掉。** 你打進去的東西進的是一段跑在這個分頁裡的金鑰推導，別處都不去。它不會被存下來，不會在兩個檔案之間被記住，也不會被寫進位址列；頁面的 `Content-Security-Policy` 列出了這一頁可以聯絡的每一個地址，其中沒有一個屬於本站。一個工具問你要文件密碼、然後發起一次網路請求，是這類工具能做的最壞的一件事。
- **做好的檔案在交給你之前，會在這裡重新開啟一次。** 在那之前，上面這些話都只是這個工具在給自己判卷。所以那些馬上就要變成你下載的位元組，會被交給[壓縮器](https://abox.tools/zh-TW/compress-pdf/)、[合併器](https://abox.tools/zh-TW/merge-pdf/)和[塗黑工具](https://abox.tools/zh-TW/redact-pdf/)用的同一個讀取器，一個碰到加密文件就直接拒絕的讀取器，而它必須在不給任何密碼的情況下開啟，並且頁數跟原來一樣。一個還帶著任何加密的檔案是過不了這一關的。過不了，這次執行就報告為失敗，也不會有下載。
- **頁面本身不會被重新渲染、重新編碼，也不會重排。** 變的是文件外面那層加密，不是文件。每一頁的繪製指令、每一個嵌入字型、每一張圖片，都按原樣寫回去，所以文字還能選、還能搜，掃描檔還是掃描時的解析度，頁面上什麼都不會移位。唯一會變的是任何一次重寫都會變的東西：早先編輯留下的、已經被取代的舊物件不再帶過來，通常還會讓檔案小一點。
- **數字簽名過不了這一關，有簽名的時候頁面會說。** 簽名覆蓋的是它當初籤的那個檔案的確切位元組，所以任何重寫都會讓它失效，這正是簽名的用處。這個工具寫的是一個新檔案，所以你拿回去的那份是沒有簽名的；發現檔案帶著簽名時，它會在結果裡說明。你的原件仍然是那份簽過名的。這件事沒有繞過去的辦法，也沒有哪個工具有。
- **它會說那層保護到底值多少。** 一份 1998 年用 40 位 RC4 鎖上的文件，和一份去年用 AES-256 鎖上的文件，在閱讀器裡都寫著「已加密」，而它們之間差了幾十年。這一頁會說出方案、金鑰長度和修訂號，並且直說其中哪些早就被攻破、哪些只是過時、哪一個還是當前的。對一份別人告訴你「很安全」的檔案來說，這值得知道，而沒有哪個閱讀器會擺給你看。
- **用證書鎖的文件會被直接拒絕，而不是半開著。** 有些文件是加密給一張證書而不是一個密碼的，企業裡那種，金鑰放在智慧卡或者金鑰庫裡。這些會被拒絕，並且說明它們是什麼。密碼框裡打什麼都代替不了一把私鑰，假裝可以只是浪費你的時間。
- **Google 載入了什麼，又沒拿到什麼。** 廣告和統計指令碼來自 Google。這兩個都沒有拿到關於你文件的任何東西：不是檔案，不是某一頁，不是檔名、大小、頁數、密碼，也不是這個檔案被什麼保護著。每一行讀取、解密或者寫出 PDF 的程式碼都由這個源站發出，並且列在程式碼儲存庫裡。
- **打賞按鈕載入了什麼，又沒拿到什麼。** 頁首上那個「Buy me a coffee」按鈕，是由 cdnjs.buymeacoffee.com 的一段指令碼畫出來的，字型取自 Google Fonts。它就是一個連結，僅此而已：它不上報訪問，也拿不到任何關於你或者你文件的東西。你不點它就什麼都不會發生，而點下去要去的是別人的網站。
- **斷網也能用。** 把網路斷掉，這一頁上的所有功能照常。這是最簡單的一個證明：一個把你的文件發出去解鎖的工具，這時候就停了。

**你可以自己核對。**上面這些不用你信。這個頁面是儲存庫裡的模板和配置產生出來的，構建指令碼你能讀，也能自己跑一遍，跑出來的結果就提交在 `dist` 分支上。拿實際發給你的內容，跟你自己從原始碼構建出來的結果對一遍就知道了： https://github.com/A-Box-of-Tools/website

最值得先讀的幾個檔案：`config/site.toml` 裡是 Content-Security-Policy，一個密碼是怎麼變成文件金鑰的，以及那裡面根本沒有循環這件事，看 `src/crypt.js`；兩種密碼演算法本身在 `src/aes.js` 和 `src/rc4.js`。這幾個都夠不著網路，旁邊負責讀和寫的部分也一樣。
