PDFファイルを暗号化する

暗号化は、PDF 文書の内容を保護するための有名で信頼性の高い方法です。文書が暗号化されると、その内容は判読できなくなり、許可されたユーザーだけが文書を復号化して内容にアクセスできます。文書をパスワードで保護すると、正しいパスワードを入力した人だけがファイルまたはフォルダーにアクセスできます。より強力なセキュリティ方法は暗号化であり、一般的なタイプは 128 ビット キーまたは 256 ビット AES 暗号化です。暗号化により、文書の内容が判読できない暗号文に変換されることに注意してください。文書を復号化するには、許可されたユーザーがキー (通常はパスワードまたはデジタル証明書) を必要とします。この記事では、Java クラウド SDK を使用して PDF ファイルを暗号化および復号化する方法について詳しく説明します。

このブログでは、Java REST API を使用して PDF ドキュメントを暗号化および復号化するための手順と詳細について説明します。

Java API リファレンス

Aspose.PDF Cloud SDK for Java は Aspose.PDF Cloud のラッパーであり、Java プログラマーが Cloud API で現在提供されている機能を最大限に活用できるようにします。そのため、Java コード内で PDF ファイルを作成、編集し、さまざまな サポートされているドキュメント形式 に変換する機能が得られます。

インストール

SDK を使用するには、まずシステムにインストールする必要があります。Cloud SDK は Maven および GitHub からダウンロードできます。次に、pom.xml ファイルに次の詳細を追加して、Aspose.Pdf.jar をダウンロードし、Maven ビルド プロジェクトで使用します。

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

Aspose.Cloud SDKのインストール方法の詳細については、次のリンクを参照することをお勧めします。

クラウドダッシュボードの無料サブスクリプション

Aspose.PDF Cloud SDK For Java は、PDF ファイル処理用のオープンソースの無料クラウド SDK です。無料とは、SDK の完全なソース コードが GitHub リポジトリからダウンロードできることを意味します。したがって、必要に応じてコードを変更できます。ただし、データの機密性と整合性を確保するために、クラウド API には許可されたユーザーのみがアクセスでき、特定のクラウド ストレージにのみアクセスできます。

そのため、まずはAspose.Cloudダッシュボードにアクセスし、GitHubまたはGoogleアカウントをお持ちの場合はサインアップするだけです。そうでない場合は、新しいアカウントの作成ボタンをクリックして必要な情報を入力します。

cURL コマンドを使用して PDF ファイルを暗号化する

cURL コマンドは、REST API にアクセスする最も簡単で優れた方法の 1 つです。それでは、cURL コマンドを使用してさまざまな注釈を追加する方法について説明します。cURL コマンドを使用するには、まず JWT アクセス認証トークンを生成する必要があります。JSON Web トークン (JWT) は、クライアント ID とクライアント シークレットの詳細に基づいています。これらは、顧客ごとに生成される一意のキーです。資格情報を使用して Aspose.Cloud ダッシュボード にログインし、ダッシュボードからアプリケーション セクションを展開して、クライアント資格情報セクションまで下にスクロールして、クライアント ID とクライアント シークレットの詳細を確認します。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

先に進む前に、PDF ファイルを暗号化するときに、ユーザーと所有者のパスワードを設定することに注意してください。

文書を開くパスワード

ドキュメントを開くパスワード (ユーザー パスワードとも呼ばれます) を使用すると、ユーザーは PDF を開くためにパスワードを入力する必要があります。

権限パスワード

権限設定を変更するには、権限パスワード (マスター/所有者パスワードとも呼ばれます) が必要です。権限パスワードを使用すると、PDF 内のコンテンツの印刷、編集、コピーを制限できます。このパスワードは、すでに適用されている制限を変更する場合に必要です。

PDF が両方の種類のパスワードで保護されている場合は、どちらのパスワードでも開くことができます。

API は、所有者とユーザーのパスワードを Base64 エンコード形式で受け入れることに注意してください。次の cURL コマンドでは、ownerPassword (b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm) と userPassword (dXNlciAkXlBhc3N3b3JkISY=) が指定されています。

curl -v "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/encrypt?userPassword=dXNlciAkXlBhc3N3b3JkISY%3D&ownerPassword=b3duZXJcLy8%2FICQxMl5QYXNzd29yZCEm&cryptoAlgorithm=AESx128&permissionsFlags=AssembleDocument&usePdf20=false" \
-X POST \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Javaを使用してPDFファイルを暗号化する

PDF ファイルにパスワード保護を追加するだけでなく、より強力なセキュリティ方法である暗号化を使用します。Java REST API を使用すると、ドキュメントの内容を読み取り不可能な暗号テキストに変換する次のいずれかの暗号化方法を選択できます。

| 名前 | 説明 |

| ———— | ———————– |

| RC4x40 | キーの長さが 40 の RC4。 |

| RC4x128 | キーの長さが 128 の RC4。 |

| AESx128 | キーの長さが 128 の AES。 |

| AESx256 | キーの長さが 256 の AES。 |

次のコード スニペットを使用して、クラウド ストレージで既に使用可能な PDF ファイルに userPassword と ownerPassword を追加します。

  • 最初のステップは、clientID と clientSecret の詳細を引数として渡しながら PdfApi インスタンスを作成することです。
  • PdfApi の uploadFile(…) メソッドを使用して、PDF ファイルをクラウド ストレージにアップロードします。
  • 最後に、入力 PDF ファイル名、ユーザーと所有者のパスワード、および CryptoAlgorithm 列挙の値を引数として受け取る PdfApi の postEncryptDocumentInStorage(…) メソッドを呼び出します。
// https://dashboard.aspose.cloud/ から ClientID と ClientSecret を取得します。
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// PdfApiインスタンスを作成する
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// 入力PDF文書
String name = "PdfWithTable.pdf";	        
			   
// ローカルシステムからファイルを読み込む
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// ファイルをクラウドストレージにアップロードする
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// base64 でエンコードされたユーザーと所有者のパスワード
String userPasswordBase64encoded = "dXNlciAkXlBhc3N3b3JkISY="; //user $^Password!&
String ownerPasswordBase64encoded = "b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm"; //owner\//? $12^Password!&

// PDFを暗号化するためのAPIを呼び出す
AsposeResponse response  = pdfApi.postEncryptDocumentInStorage(name, userPasswordBase64encoded, ownerPasswordBase64encoded,
			                CryptoAlgorithm.AESX128.getValue(), null, null, null, null);
// コンソールにAPIレスポンスを出力する
System.out.println(response);

結果のファイルを開こうとすると、パスワードの詳細を入力するプロンプトが表示されます。

cURL コマンドを使用して PDF ファイルを復号化する

cURL コマンドは、既存のエンコードされた PDF ドキュメントを復号化するためにも使用できます。以下の例では、パスワードの詳細を引数として受け取る PostDecryptDocumentInStorage API にアクセスしています。

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/decrypt?password=dXNlciAkXlBhc3N3b3JkISY%3D" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Javaを使用してPDFファイルを復号化する

Javaを使用してPDFファイルを復号化するには、以下の手順に従ってください。

  • clientSecret と clientID を引数として渡しながら PdfApi インスタンスを作成します。
  • 入力 PDF ファイルを定義する文字列オブジェクトを作成します。
  • PdfApi クラスの uploadFile(….) メソッドを使用して、ファイルをクラウド ストレージにアップロードします。
  • 最後に、入力 PDF ファイル名と復号化パスワードを引数として指定して、postDecryptDocumentInStorage(…) メソッドを呼び出します。
// https://dashboard.aspose.cloud/ から ClientID と ClientSecret を取得します。
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// PdfApiインスタンスを作成する
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// 入力PDF文書
String name = "PdfWithTable.pdf";	        
			   
// ローカルシステムからファイルを読み込む
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// ファイルをクラウドストレージにアップロードする
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// base64 でエンコードされたユーザーと所有者のパスワード
String userPasswordBase64encoded = "dXNlciAkXlBhc3N3b3JkISY="; //user $^Password!&

// PDFを復号化するためのAPIを呼び出す
AsposeResponse response  = pdfApi.postDecryptDocumentInStorage(name, userPasswordBase64encoded, null,null);
// コンソールにAPIレスポンスを出力する
System.out.println(response);

上記の例で使用した復号化されたファイルは、PdfWithTable-Encrypted.pdfからダウンロードできます。

結論

このブログでは、Java REST API を使用して PDF ファイルを暗号化および復号化する手順について説明しました。ソース ファイルを簡単に暗号化し、データの盗難やドキュメントの不正使用を心配することなくインターネット上で共有できます。暗号化機能以外にも、Aspose.PDF Cloud SDK for Java は PDF 形式に関連するさまざまな機能を提供します。Aspose.PDF Cloud 機能 の詳細については、次のリンクを参照してください。

関連記事

以下のブログもぜひお読みください。