加密 PDF 文件

加密是保護 PDF 文件內容的一種著名且可靠的方法。當文件被加密時,其內容將變得不可讀,並且只有授權使用者才能解密文件以取得對內容的存取權。當您使用密碼保護文件時,輸入正確密碼的人可以存取該文件或資料夾。更強的安全方法是加密,常見的類型有128位元金鑰或256位元AES加密。請注意,加密會將文件內容變成不可讀的密文。要解密文檔,授權使用者需要金鑰,該金鑰通常是密碼或數位憑證。在本文中,我們將討論如何使用Java雲SDK加密和解密PDF檔案的詳細資訊。

在本部落格中,我們將討論使用 Java REST API 加密和解密 PDF 文件的相關步驟和細節。

Java REST API

Aspose.PDF Cloud SDK for Java 是 Aspose.PDF Cloud 的包裝器,使 Java 程式設計師能夠充分利用我們的 Cloud API 目前提供的功能。因此,您可以在 Java 程式碼中建立、編輯 PDF 檔案並將其轉換為各種支援的文件格式

安裝

為了使用 SDK,第一步是將其安裝到您的系統上。 Cloud SDK 可透過 MavenGitHub 下載。現在,在 pom.xml 檔案中添加以下詳細信息,以在 Maven 建置專案中下載並使用 Aspose.Pdf.jar。

<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 檔案處理的開源免費 Cloud SDK。當我們提到免費時,意味著 SDK 的完整原始程式碼可以在 GitHub 儲存庫上下載。所以你可以根據你的要求修改它的程式碼。但是,為了確保資料的機密性和完整性,雲端 API 只能由授權人員訪問,並且他們只能存取其特定的雲端儲存。

因此,您首先需要存取Aspose.Cloud 儀表板,如果您有 GitHub 或 Google 帳戶,只需註冊即可。否則,請按一下建立新帳戶按鈕並提供所需資訊。

使用 cURL 命令加密 PDF 文件

cURL 指令是存取 REST API 最簡單、最酷的方法之一。那我們來談談使用 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 | RC4,密鑰長度為 40。

| RC4x128 | RC4,密鑰長度為 128。

| AESx128 |密鑰長度為 128 的 AES。

| AESx256 |密鑰長度為 256 的 AES。

使用以下程式碼片段將 userPassword 和 OwnerPassword 新增至雲端儲存上已有的 PDF 檔案中。

  • 第一步是建立一個 PdfApi 實例,同時傳遞 clientID 和 clientSecret 詳細資訊作為參數。
  • 使用 PdfApi 的 uploadFile(…) 方法將 PDF 檔案上傳到雲端儲存。
  • 最後呼叫 PdfApi 的 postEncryptDocumentInStorage(…) 方法,該方法接受輸入 PDF 檔案名稱、使用者和擁有者密碼以及 CryptoAlgorithm 枚舉中的值作為參數。
// 從 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!&

// 呼叫API加密PDF
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,該 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 文件,請依照下列步驟操作

  • 建立 PdfApi 實例,同時傳遞 clientSecret 和 clientID 作為參數。
  • 建立定義輸入 PDF 檔案的字串物件。
  • 使用 PdfApi 類別的 uploadFile(….) 方法將檔案上傳到雲端儲存。
  • 最後,呼叫 postDecryptDocumentInStorage(…) 方法,同時提供輸入 PDF 檔案名稱和解密密碼作為參數。
// 從 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!&

// 呼叫API解密PDF
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 功能 的更多詳細資訊。

相關文章

我們還建議您閱讀以下博客以獲取有關信息