使用 GroupDocs.Signature for Java 實作 Java QR 碼簽名
介紹
透過在 Java 應用程式中嵌入二維碼,增強數位文件的安全性。利用 GroupDocs.Signature for Java,您可以有效確保文件的真實性和可追溯性。本指南將指導您建立自訂資料簽章、配置二維碼簽章選項,並使用強大的加密技術保護您的文件。
您將學到什麼:
- 如何使用 GroupDocs.Signature 建立自訂資料簽章類
- 在 Java 應用程式中配置二維碼簽名選項
- 使用二維碼簽署文件並套用自訂加密
讓我們深入了解先決條件並開始將此功能整合到您的專案中!
先決條件
在開始之前,請確保您已經在開發環境中設定了必要的程式庫和相依性。
所需的庫和版本
若要為 Java 實作 GroupDocs.Signature,請包含下列相依性:
Maven
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Gradle
implementation 'com.groupdocs:groupdocs-signation:23.12'
您也可以直接從 GroupDocs.Signature Java 版本.
環境設定要求
- 確保您已安裝可運行的 Java 開發工具包 (JDK)。
- 設定您的整合開發環境 (IDE),例如 IntelliJ IDEA 或 Eclipse。
知識前提
- 對 Java 程式設計和物件導向概念有基本的了解。
- 熟悉使用 Maven 或 Gradle 處理依賴項。
為 Java 設定 GroupDocs.Signature
首先,請按照上面的安裝說明在您的專案中設定 GroupDocs.Signature,並將其包含在您的建置配置中。
許可證取得步驟
GroupDocs 提供不同的授權選項:
- 免費試用:無限制測試所有功能。
- 臨時執照:取得用於評估目的的許可證。
- 購買:獲得商業使用的完整許可。
下載後,像這樣初始化 GroupDocs.Signature:
import com.groupdocs.signature.Signature;
class InitializeGroupDocs {
public static void main(String[] args) {
Signature signature = new Signature("path/to/your/document");
// 現在您可以開始使用簽名物件來處理文件。
}
}
實施指南
讓我們將實施過程分解為易於管理的部分,並專注於關鍵特性。
自訂資料簽名類
概述
建立一個自訂類別來儲存簽名數據,例如 ID、作者、簽名日期和其他因素。這可確保您的簽名中封裝了所有必要的元資料。
逐步實施
定義 DocumentSignatureData 類別
import com.groupdocs.signature.domain.extensions.serialization.FormatAttribute;
import java.util.Date;
import java.math.BigDecimal;
class DocumentSignatureData {
@FormatAttribute(propertyName = "SignID")
public String ID; // 簽名的唯一識別符
public String getID() { return ID; }
public void setID(String value) { ID = value; }
@FormatAttribute(propertyName = "SAuth")
public final String Author; // 文件的作者
public final String getAuthor() { return Author; }
public final void setAuthor(String value) { Author = value; }
@FormatAttribute(propertyName = "SDate", propertyFormat = "yyyy-MM-dd")
public final Date Signed = new Date(); // 簽署日期和時間
public final Date getSigned() { return Signed; }
public final void setSigned(Date value) { Signed = value; }
@FormatAttribute(propertyName = "SDFact", propertyFormat = "N2")
public final BigDecimal DataFactor = new BigDecimal(0.01); // 簽署的附加資料因素
public final BigDecimal getDataFactor() { return DataFactor; }
public final void setDataFactor(BigDecimal value) { DataFactor = value; }
}
解釋:
- 格式屬性:註釋屬性以自訂序列化。
- 特性:擷取必要的詳細信息,例如唯一 ID、作者姓名、簽名日期和資料因素。
QR 碼簽名選項配置
概述
配置二維碼簽章選項來定義二維碼在文件上的顯示方式,包括大小、對齊方式和填滿。
逐步實施
定義 QrCodeSignOptionsConfig 類
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
class QrCodeSignOptionsConfig {
public static QrCodeSignOptions setupQrCodeSignOptions(DocumentSignatureData documentSignature) {
QrCodeSignOptions options = new QrCodeSignOptions();
// 將自訂資料物件序列化為二維碼
options.setData(documentSignature);
// 指定二維碼類型
options.setEncodeType(QrCodeTypes.QR);
// 配置對齊的填充
Padding padding = new Padding();
padding.setRight(10); // 右填充(以像素為單位)
padding.setBottom(10); // 底部填充(以像素為單位)
options.setMargin(padding);
// 定義二維碼的大小和位置
options.setHeight(100);
options.setWidth(100);
options.setVerticalAlignment(VerticalAlignment.Bottom);
options.setHorizontalAlignment(HorizontalAlignment.Right);
return options;
}
}
解釋:
- QrCodeSignOptions:管理二維碼的顯示方式,包括其大小和位置。
- 填充:調整文檔內的對齊方式。
使用二維碼和自訂加密進行文件簽名
概述
結合二維碼和自訂加密技術,安全地簽署文件。這確保了資料的完整性和保密性。
逐步實施
使用二維碼簽署文件
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.extensions.encryption.IDataEncryption;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import java.util.UUID;
class SignDocumentWithQRCode {
public static void signDocument(String filePath, String outputFilePath) throws Exception {
try {
Signature signature = new Signature(filePath);
// 自訂XOR加密策略
IDataEncryption encryption = new CustomXOREncryption();
// 配置自訂文件簽章資料對象
DocumentSignatureData documentSignature = new DocumentSignatureData();
documentSignature.setID(UUID.randomUUID().toString());
documentSignature.setAuthor(System.getenv("USERNAME"));
documentSignature.setSigned(new Date());
documentSignature.setDataFactor(new BigDecimal("11.22"));
// 設定二維碼選項
QrCodeSignOptions options = QrCodeSignOptionsConfig.setupQrCodeSignOptions(documentSignature);
// 將二維碼內的資料加密
options.setDataEncryption(encryption);
// 簽署並儲存文件
signature.sign(outputFilePath, options);
} catch (Exception e) {
throw new GroupDocsSignatureException(e.getMessage());
}
}
}
解釋:
- 自訂異或加密:實施自訂加密策略來保護二維碼資料。
- 唯一識別符:為每個簽名產生一個唯一的識別碼。