你是不是也遇過這樣的困惑:PDF 設了密碼,但別人好像隨便就能複製裡面的內容?或者反過來——一份 PDF 怎麼都打不開,輸什麼密碼都不對?
這兩種體驗對應的其實是 PDF 的兩種完全不同的密碼機制。理解它們的差別,能幫你正確保護自己的文件,也能在合法前提下解除不必要的限制。
開啟密碼:密碼學級別的真加密
開啟密碼(Document Open Password,也叫使用者密碼)是 PDF 安全體系中唯一的硬防護。設了開啟密碼的 PDF,文件內容在儲存層面被 AES 或 RC4 演算法加密——直接讀取二進位資料得到的只是一堆無意義的密文。
它是怎麼運作的?
密碼本身並不直接參與加密。整個流程是這樣的:
- 產生檔案金鑰:PDF 軟體隨機產生一個檔案金鑰(File Key),用它對文件內的所有字串和資料流執行 AES/RC4 加密
- 密碼 → 金鑰驗證:你輸入的密碼經過雜湊處理(SHA-256 / MD5),產生的值與 PDF 加密字典中的驗證項比對
- 配對成功 → 解鎖檔案金鑰:驗證通過後,系統衍生出檔案金鑰,閱讀器才能渲染文字、影像和表單
這意味著:沒有正確密碼 = 從數學上無法讀取內容。這種不可讀性由密碼學強度保障,跟閱讀器是否「合規」毫無關係。
開啟密碼無法繞過
對於使用 AES-256 + PBKDF2(修訂版本 6)加密的 PDF,即使動用頂級 GPU(如 NVIDIA A100),由於高迭代次數的金鑰拉伸,每秒也只能嘗試幾千個密碼。一個 12 位混合密碼的窮舉時間以百年計。唯一的破解方式是知道密碼本身。
加密演算法的演進
PDF 的加密歷史本質上是一部演算法淘汰史。早期的弱加密今天已毫無安全性可言:
| 加密版本 | 演算法 | 金鑰長度 | 安全評估 |
|---|---|---|---|
| Revision 2(Acrobat 3/4) | RC4 | 40 位 | ❌ 秒破,金鑰空間僅 2⁴⁰ |
| Revision 3(Acrobat 5/6) | RC4 | 128 位 | ⚠️ 演算法本身有統計學漏洞,配合 MD5 易受彩虹表攻擊 |
| Revision 5(Acrobat 9+) | AES-CBC | 256 位 | ✅ SHA-256 驗證,強度足夠 |
| Revision 6(PDF 2.0) | AES-CBC | 256 位 | ✅✅ PBKDF2 金鑰拉伸,GPU 暴力破解成本不可接受 |

如果你使用 Acrobat 或其他工具加密 PDF,務必選擇 AES-256(相容 Acrobat X 及更高版本)。選擇「相容 Acrobat 5.0」會降級為 128 位 RC4,安全性大打折扣。
PBKDF2:讓暴力破解變得不划算
PDF 2.0(ISO 32000-2)引入的修訂版本 6 處理器,核心改進是 PBKDF2(Password-Based Key Derivation Function 2)——一種「金鑰拉伸」技術:
- 加鹽:每個文件隨機產生 32 位元組的鹽值。即使上千份 PDF 使用相同密碼,由於鹽不同,雜湊結果也完全不同
- 多輪迭代:將雜湊函式迴圈執行數萬到數十萬次。舊版 MD5 只需一次運算,PBKDF2 把每次嘗試的計算成本放大了 10 萬倍以上
- OWASP 建議:PBKDF2-HMAC-SHA256 的迭代次數至少應為 310,000 次
簡單說:PBKDF2 把「試一個密碼」這件事變得很慢,從而讓攻擊者的速度優勢被完全抹平。
權限密碼:一個「君子協定」
權限密碼(Permissions Password,也叫擁有者密碼/Owner Password)的設計初衷完全不同——它不阻止你閱讀,而是限制你的操作權限,比如禁止列印、複製、編輯。
本質差別:沒有真正加密
這是最關鍵的一點:權限密碼通常不加密文件內容。
當 PDF 僅設定了權限密碼而沒有開啟密碼時,任何人都可以在不輸入憑證的情況下打開文件。此時,限制的實施完全依賴於閱讀器軟體的「自覺」——Adobe Acrobat 看到權限標記後會主動把「列印」按鈕變灰,但從技術上說,內容是可以被讀取的。
權限密碼 = 合規依賴
權限限制的有效性依賴於閱讀器「合規」。Adobe Acrobat、Foxit Reader 等主流軟體會遵守這些限制,但很多開源閱讀器、瀏覽器外掛根本不讀取權限標記——它們會無視限制,允許自由複製和列印。
權限位元遮罩:精細到每個操作
PDF 的權限控制透過加密字典中的 P 值(一個 32 位元帶符號整數)實現。每個位元對應一種操作許可:
| 位元 | 控制內容 | 場景示例 |
|---|---|---|
| Bit 3 | 列印 | 禁止傳送到印表機 |
| Bit 4 | 修改內容 | 禁止文字編輯、頁面旋轉 |
| Bit 5 | 複製/擷取 | 禁止選中文字並貼上 |
| Bit 6 | 批註/註解 | 禁止新增醒目標示和備註 |
| Bit 9 | 表單填寫 | 允許填寫但禁止修改表單結構 |
| Bit 10 | 輔助技術擷取 | 允許螢幕閱讀器等無障礙工具 |
| Bit 11 | 文件組裝 | 允許插入/刪除/旋轉頁面 |
| Bit 12 | 高品質列印 | Bit 3 開啟 + Bit 12 關閉 = 只能低解析度列印 |

為什麼權限密碼能被秒速移除?
權限密碼面臨三個結構性弱點:
- 非合規閱讀器:許多開源或第三方 PDF 工具根本不讀取 P 值,直接無視所有限制
- 列印重構:透過虛擬印表機將受限 PDF 列印為新 PDF,新檔案不帶任何權限限制
- 演算法公開:權限密碼的驗證演算法是公開的,且在文件可被開啟的前提下(解密金鑰已知),qpdf 等工具可以秒速移除所有 P 值限制
權限密碼限制?一鍵移除
如果你的 PDF 能正常開啟但無法列印或複製,說明只設了權限密碼。使用 PDF 解鎖 即可一鍵移除所有操作限制——無需輸入任何密碼。
兩種密碼的全維度對比
| 維度 | 開啟密碼(使用者密碼) | 權限密碼(擁有者密碼) |
|---|---|---|
| 核心目的 | 保護機密性,阻止查看 | 管理操作範疇,限制列印/複製/編輯 |
| 加密效果 | AES/RC4 全量加密資料流 | 通常不直接加密內容 |
| 破解難度 | 極高(需破解 AES + PBKDF2) | 極低(秒速移除) |
| 實施依據 | 密碼學數學強度 | 閱讀器軟體的「自覺性」 |
| 使用者體驗 | 打不開文件,提示輸入密碼 | 能閱讀,但功能按鈕灰色 |
| 適用場景 | 銀行帳單、合約、機密報告 | 宣傳冊、版權聲明、內部流轉文件 |
| 安全隱喻 | 🔒 保險箱的密碼鎖 | 🚧 「請勿觸摸」的警示牌 |

安全建議:如果文件對機密性要求高,必須設定開啟密碼。僅設權限密碼等於沒有加密——內容一旦被讀取,洩密就已經發生了。
真正的威脅往往不是演算法
即使採用了最強的 AES-256 + PBKDF2,多數 PDF 洩密仍然源於「人的因素」:
- 密碼同傳:在同一封郵件中傳送加密 PDF 和密碼——等於鎖和鑰匙綁在一起
- 密碼重用:所有受保護文件使用相同的弱密碼,或與社群帳號共享密碼
- 臨時解密後遺忘:為了列印而移除密碼,隨後將無密碼檔案透過非加密管道轉發
密碼傳輸建議
加密 PDF 和密碼應透過不同管道傳輸。例如:PDF 透過郵件傳送,密碼透過簡訊或即時通訊工具告知。
操作指南
移除權限限制
如果你的 PDF 能開啟但無法複製/列印/編輯:
- 上傳到 PDF 解鎖
- 工具自動偵測到權限密碼並移除所有操作限制
- 下載解鎖後的 PDF,自由使用
解鎖加密 PDF
如果你的 PDF 需要密碼才能開啟(且你知道密碼):
- 上傳到 PDF 解鎖
- 在彈出的密碼框中輸入正確密碼
- 下載不再需要密碼的 PDF
給 PDF 加密保護
如果你需要保護自己的文件:
- 上傳到 PDF 加密
- 選擇要設定的密碼類型和權限限制
- 關鍵:確保選擇 AES-256 加密標準以獲得最高安全性
PDF 安全的未來
密碼加密雖然是主流,但它的固有侷限——無法防截圖、無法追蹤閱讀歷史、無法遠端銷毀——正推動產業向更高級方案演進:
- 憑證加密(PKI):用公鑰加密文件,私鑰儲存在智慧卡或安全晶片中,消除密碼傳輸環節
- 數位版權管理(DRM):透明加密 + 裝置繫結 + 動態浮水印 + 閱讀次數限制,適合高度敏感的商業文件
- PDF 2.0 增強:ISO 32000-2 正式棄用了所有版本的 RC4 演算法,並引入 AES-GCM(帶身份驗證的加密),可偵測文件在加密狀態下是否被竄改
常見問題
Q:只設了權限密碼(列印/複製限制),檔案安全嗎? A:不安全。 權限密碼不加密內容,任何不合規的閱讀器或 解鎖工具 都能秒速移除限制。如需真正保護,請同時設定開啟密碼。
Q:忘記了 PDF 的開啟密碼,有辦法找回嗎? A:如果使用了 AES-256 加密且密碼足夠複雜,幾乎無法破解。建議聯繫原檔案傳送者取得密碼。我們不會、也無法協助破解未知密碼。
Q:為什麼有些 PDF 上傳後自動就能編輯了? A:因為那些 PDF 只設了權限密碼。Dpdf 的所有轉換工具都會自動解除權限限制——這是合法且標準的操作,並不涉及破解加密。
Q:怎樣的密碼才夠安全? A:至少 12 位,混合大小寫字母、數字和特殊字元。熵值達到 78 位以上的密碼,配合 AES-256 + PBKDF2,在目前技術條件下無法被暴力破解。
