如何使用 GroupDocs.Signature 在 Java 中實現具有二維碼加密的安全 PDF 簽名
在當今的數位時代,保護文件中的敏感資訊至關重要。網路威脅的興起使得資料加密成為文件管理的重要組成部分。本教學將指導您使用 GroupDocs.Signature for Java 實現安全的 PDF 簽名,並使用二維碼加密。學完本文後,您將能夠將強大的安全功能整合到您的應用程式中。
您將學到什麼:
- 理解 Java 中的對稱資料加密
- 建立自訂簽名類
- 使用自訂資料和對齊方式配置二維碼簽名
- 整合 GroupDocs.Signature 實現安全的 PDF 簽名
準備好了嗎?讓我們開始吧!
先決條件
在開始之前,請確保您具備以下條件:
- Java 開發工具包 (JDK): 版本 8 或更高版本。
- Maven 或 Gradle: 用於依賴管理。請根據您的項目設定進行選擇。
- Java程式設計知識: 對 Java 物件導向程式設計有基本的了解。
為 Java 設定 GroupDocs.Signature
要開始使用 GroupDocs.Signature,您需要將其新增為專案的依賴項。該庫提供了用於管理數位簽章和文件加密的強大工具。
Maven 設定
將以下相依性新增至您的 pom.xml
文件:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Gradle 設定
對於 Gradle 用戶,將其包含在您的 build.gradle
文件:
implementation 'com.groupdocs:groupdocs-signature:23.12'
直接下載
或者,從下載最新版本 GroupDocs.Signature Java 版本.
許可證獲取
您可以先免費試用 GroupDocs.Signature 來評估其功能。如需長期使用,請考慮購買許可證或透過其網站申請臨時許可證。
實施指南
本指南分為幾個主要部分,涵蓋資料加密、自訂簽章建立和二維碼簽章配置。
對稱演算法資料加密
加密資料可確保其在傳輸和預存程序中的安全性。以下是使用 GroupDocs.Signature 設定對稱加密的方法:
設定對稱加密
- 導入必要的套件:
import com.groupdocs.signature.domain.extensions.encryption.IDataEncryption; import com.groupdocs.signature.domain.extensions.encryption.SymmetricAlgorithmType; import com.groupdocs.signature.domain.extensions.encryption.SymmetricEncryption;
- 初始化加密物件:
使用安全金鑰和鹽進行加密。替換
"YOUR_SECURE_KEY"
使用您自己的鑰匙。String key = "YOUR_SECURE_KEY"; String salt = "YOUR_SECURE_SALT"; IDataEncryption encryption = new SymmetricEncryption( SymmetricAlgorithmType.Rijndael, key, salt );
- 對稱演算法類型.Rijndael: 這指定了要使用的對稱演算法的類型。
- 密鑰和鹽: 確保這些對於您的應用程式來說是唯一的和安全的。
自訂資料簽名類
建立自訂類別可以讓你有效地管理簽名屬性。具體方法如下:
定義 DocumentSignatureData
班級
class DocumentSignatureData {
private String ID;
private String Author;
private Date Signed = new Date();
private BigDecimal DataFactor = new BigDecimal(0.01);
public String getID() { return ID; }
public void setID(String value) { ID = value; }
public final String getAuthor() { return Author; }
public final void setAuthor(String value) { Author = value; }
public final Date getSigned() { return Signed; }
public final void setSigned(Date value) { Signed = value; }
public final BigDecimal getDataFactor() { return DataFactor; }
public final void setDataFactor(BigDecimal value) { DataFactor = value; }
}
- ID、作者、簽名: 這些欄位儲存簽署的元資料。
- 數據因素: 保存與應用程式邏輯相關的數值。
QR碼簽名選項
二維碼提供了一種緊湊的資訊嵌入方式。您可以使用自訂資料和加密方式進行配置:
設定二維碼簽名
- 初始化
Signature
目的:import com.groupdocs.signature.Signature; Signature signature = new Signature("YOUR_DOCUMENT_DIRECTORY");
- 配置二維碼選項:
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes; import com.groupdocs.signature.options.sign.QrCodeSignOptions; import java.util.UUID; DocumentSignatureData documentSignature = new DocumentSignatureData(); documentSignature.setID(UUID.randomUUID().toString()); documentSignature.setAuthor(System.getenv("USERNAME")); documentSignature.setDataFactor(new BigDecimal("11.22")); QrCodeSignOptions options = new QrCodeSignOptions(); options.setData(documentSignature); options.setEncodeType(QrCodeTypes.QR); options.setDataEncryption(encryption); // 使用加密對象 options.setHeight(100); options.setWidth(100); options.setVerticalAlignment(com.groupdocs.signature.domain.enums.VerticalAlignment.Bottom); options.setHorizontalAlignment(com.groupdocs.signature.domain.enums.HorizontalAlignment.Right); import com.groupdocs.signature.domain.Padding; Padding padding = new Padding(); padding.setRight(10); padding.setBottom(10); options.setMargin(padding);
- 編碼類型: 指定二維碼格式。
- 對齊和邊距: 自訂二維碼在文件上的顯示方式。
範例用法
若要使用您配置的選項簽署文件:
signature.sign("YOUR_OUTPUT_DIRECTORY/QRCodeEncryptedObject.pdf\