LoginSignup
0
0

Python で PDF の暗号化および復号化

Posted at

はじめに

データのセキュリティは、多くの組織や個人にとって非常に重要です。特に機密情報が関わる場合には、さらに重要性が増します。PDFファイルを暗号化することで、認可された人だけがその内容にアクセスできるようにすることができます。本記事では、Pythonを使用してPDFファイルを暗号化および復号化する方法について探ってみます。必要な場合には、Pythonコードを使用してドキュメントを復号化することもできます。以下に詳細な手順をご紹介します。

ツール

このライブラリは購入する必要がありますが、30 日間の無料試用版も提供されています。
もっと多いサンプルコードについて、Spire.PDF for Pythonをダウンロードして参照してください。

準備

まず、Spire.PDF for Pythonと plum-dispatch v1.7.4を VS Code にインポートします。
1.Python をダウンロードしてインストールします。
2.VS Codeで「Extensions」をクリックし、「Python」を検索してインストールします。
3.「Explorer」-「NO FOLRDER OPENED」-「Open Folder」
4. フォルダーを選択し、そこに「.py」ファイルを追加します。
5.「Terminal」-「New Terminal」
6.次のコマンドを入力します。
pip install Spire.PDF

PDFの暗号化

以下のコードでは、PdfDocument.Security.Encrypt()メソッドが使用されます。このメソッドは、開放パスワードと権限パスワードを引数として受け取ります。また、パラメータ PdfPermessionsFlags は、ユーザーが文書を操作するための権限を指定するために使用されます。これらのパラメータを適切に設定することで、さまざまな暗号化オプションや権限を設定することができます。

from spire.pdf.common import *
from spire.pdf import *

# PdfDocument オブジェクトを作成する
doc = PdfDocument()

# サンプル PDF ファイルをロードする
doc.LoadFromFile("C:/Users/Administrator/Desktop/Sample.pdf")

# PDFファイルを開放パスワードと権限パスワードで暗号化する
doc.Security.Encrypt("openPsd", "permissionPsd", PdfPermissionsFlags.FillFields, PdfEncryptionKeySize.Key128Bit)

# 結果ファイルを保存する
doc.SaveToFile("C:/Users/Administrator/Desktop/Encrypted.pdf", FileFormat.PDF)

image.png

PDF の復号化

PDFを復号化する際には、PdfDocument.Security.Encrypt()メソッドを呼び出し、開放パスワードと権限パスワードを両方とも空に設定することができます。

from spire.pdf.common import *
from spire.pdf import *

# PdfDocument オブジェクトを作成する
doc = PdfDocument()

# 暗号化された PDF ファイルをロードする
doc.LoadFromFile("C:/Users/Administrator/Desktop/Encrypted.pdf", "openPsd")

# 開放パスワードと権限パスワードを空に設定して PDF ファイルを復号化する
doc.Security.Encrypt(str(), str(), PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit, "permissionPsd")

# 結果ファイルを保存する
doc.SaveToFile("C:/Users/Administrator/Desktop/RemovePassword.pdf", FileFormat.PDF)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0