使用 Python 的 pikepdf 库去除 PDF 文件密码保护

2024-03-12 22:20:20
This post is also available in English and alternative languages.

一般来说 PDF 密码存在的意义不大,使用 John the RipperHashcat 配合 GPU 可以轻松破解。但一些 under NDA 的 PDF 文档仍然会同时采用水印和密码保护,两者都给阅读体验带来不便,尤其是后者。

在已知 PDF 密码的前提下,可以简单地使用 pikepdf 库导出为一个干净的 PDF 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import pikepdf
import sys


def e(filename, password=None):
pdf = pikepdf.open(filename, password=password)
pdf.save(filename.replace(".pdf", "_decrypted.pdf"))


if __name__ == "__main__":
if len(sys.argv) != 3:
print(f"Usage: {sys.argv[0]} <filename> <password>")
sys.exit(1)
filename = sys.argv[1]
e(filename=filename, password=sys.argv[2])
Prev
2024-03-12 22:20:20
Next