使用 GroupDocs.Signature for Java 實作 Java 加密和元資料簽章搜尋

介紹

在當今的數位世界中,確保文件安全性和元資料完整性對於各行各業都至關重要。無論您是要驗證已簽署的文檔,還是要透過加密保護敏感訊息,GroupDocs.Signature for Java 等工具都可以簡化這些任務。本教學將指導您使用 GroupDocs API 建立具有加密搜尋功能的自訂資料簽章。

您將學到什麼:

  • 如何在 Java 中建立自訂元資料簽章類別。
  • 實施自訂加密以確保文件處理的安全。
  • 使用加密選項搜尋和處理元資料簽章。

讓我們先設定您的環境並逐步探索這些功能。

先決條件

在開始之前,請確保您已:

  1. Java 開發工具包 (JDK): 版本 8 或更高版本。
  2. Maven 或 Gradle: 用於管理依賴關係。
  3. GroupDocs.Signature Java 函式庫: 需要存取 23.12 或更高版本。

對 Java 程式設計有基本的了解並熟悉文件元資料處理將會很有幫助。

為 Java 設定 GroupDocs.Signature

首先,將 GroupDocs.Signature for Java 加入專案的依賴項:

Maven 依賴

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version>
</dependency>

Gradle 實現

implementation 'com.groupdocs:groupdocs-signature:23.12'

或者,從下載最新版本 GroupDocs.Signature Java 版本.

許可證取得步驟:

  • 免費試用: 從免費試用開始探索功能。
  • 臨時執照: 獲得臨時許可證以進行延長測試。
  • 購買: 對於生產用途,請考慮從 GroupDocs 購買頁面.

基本初始化

要在 Java 專案中初始化 GroupDocs.Signature:

import com.groupdocs.signature.Signature;

public class DocumentHandler {
    public static void main(String[] args) {
        String filePath = "path/to/your/document";
        Signature signature = new Signature(filePath);
        
        // 現在您已準備好使用簽名功能。
    }
}

實施指南

自訂資料簽名類

概述

自訂資料簽章類別支援在文件中嵌入額外的元資料。此功能對於追蹤文件詳細資訊(例如作者身份和簽名日期)至關重要。

實施 DocumentSignatureData 班級

建立一個 Java 類別來定義您的自訂簽章資料:

import com.groupdocs.signature.domain.signatures.metadata.WordProcessingMetadataSignature;
import com.groupdocs.signature.domain.extensions.serialization.FormatAttribute;

public static class DocumentSignatureData {
    @FormatAttribute(propertyName = "SignID")
    public String ID;

    @FormatAttribute(propertyName = "SAuth")
    public final String Author;

    @FormatAttribute(propertyName = "SDate", propertyFormat = "yyyy-MM-dd")
    public final java.util.Date Signed = new java.util.Date();

    @FormatAttribute(propertyName = "SDFact", propertyFormat = "N2")
    public final java.math.BigDecimal DataFactor = new java.math.BigDecimal(0.01);
    
    // Getter 和 Setter
    public String getID() { return ID; }
    public void setID(String value) { ID = value; }

    public final String getAuthor() { return Author; }
    public final java.util.Date getSigned() {  return Signed; }
    
    public final java.math.BigDecimal getDataFactor() { return DataFactor; }
}

解釋:

  • @FormatAttribute: 裝飾類別屬性來定義元資料屬性。
  • Getter 和 Setter: 允許存取和修改自訂簽名資料。

自訂加密實現

概述

自訂加密可確保您文件的元資料簽章保持安全。本指南示範如何為此目的實施 XOR 加密。

實施 CustomDataEncryption 班級

import com.groupdocs.signature.domain.extensions.encryption.IDataEncryption;
import com.groupdocs.signature.examples.advanced_usage.custom_encryption.CustomXOREncryption;

public static class CustomDataEncryption {
    public static IDataEncryption createCustomEncryption() {
        return new CustomXOREncryption();
    }
}

解釋:

  • 自訂XOREncryption: GroupDocs 提供的簡單 XOR 加密實作。

具有加密選項的元資料簽章搜索

概述

若要在套用自訂加密時搜尋元資料簽名,請配置您的 Signature 物件並指定加密設定。

實施 searchForMetadataWithEncryption

import com.groupdocs.signature.Signature;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import com.groupdocs.signature.options.search.MetadataSearchOptions;

public static void searchForMetadataWithEncryption(String filePath) throws Exception {
    try {
        Signature signature = new Signature(filePath);
        IDataEncryption encryption = CustomDataEncryption.createCustomEncryption();
        MetadataSearchOptions options = new MetadataSearchOptions();
        options.setDataEncryption(encryption);

        List<WordProcessingMetadataSignature> signatures = 
            signature.search(WordProcessingMetadataSignature.class, options);
        
        processSignatures(signatures);
    } catch (Exception e) {
        throw new GroupDocsSignatureException(e.getMessage());
    }
}

解釋:

  • 元資料搜尋選項: 配置搜尋參數並套用加密。
  • 流程簽名: 處理文件中找到的簽名。

處理簽名

概述

搜尋後,處理元資料以提取相關資訊以供顯示或進一步使用。

private static void processSignatures(List<WordProcessingMetadataSignature> signatures) {
    WordProcessingMetadataSignature wordSignature = null;
    for (WordProcessingMetadataSignature mdSign : signatures) {
        if (mdSign.getName().equals("Signature")) {
            wordSignature = mdSign;
            break;
        }
    }

    if (wordSignature != null) {
        DocumentSignatureData documentSignatureData = 
            wordSignature.getData(DocumentSignatureData.class);
        // 根據需要處理提取的數據
    }
}

解釋:

  • 流程簽名: 處理特定元資料類型的輔助方法。

實際應用

  1. 法律合約: 追蹤簽署細節並確保合約完整性。
  2. 財務文件: 使用加密技術保護敏感的財務資訊。
  3. 協作工作流程: 管理團隊專案中的文件版本和作者身份。
  4. 教育機構: 核實證書和成績單的真實性。
  5. 政府記錄: 維護安全且可審計的公共記錄。

性能考慮

為了優化使用 GroupDocs.Signature 時的效能:

  • 透過分塊處理大型文件來最大限度地減少資源使用。
  • 使用高效率的資料結構進行簽章處理。
  • 優化記憶體管理以防止洩漏,尤其是在進行大批量操作時。

結論

透過本指南,您學習如何使用 GroupDocs.Signature API 在 Java 中實作自訂元資料簽章並套用加密。這些功能對於確保各種應用程式中文件的安全性和完整性至關重要。為了進一步增強您的實現,您可以探索 GroupDocs 庫的其他功能,並考慮將其與其他工具或框架整合以滿足您的特定需求。