GroupDocs.Signature for Java를 사용하여 Java 암호화 및 메타데이터 서명 검색 구현

소개

오늘날의 디지털 세상에서는 모든 산업 분야에서 문서 보안과 메타데이터 무결성을 확보하는 것이 필수적입니다. 서명된 문서를 인증하거나 암호화를 통해 민감한 정보를 보호하는 경우, GroupDocs.Signature for Java와 같은 도구를 사용하면 이러한 작업을 간소화할 수 있습니다. 이 튜토리얼에서는 GroupDocs API를 사용하여 암호화된 검색 기능을 갖춘 맞춤형 데이터 서명을 만드는 방법을 안내합니다.

배울 내용:

  • Java에서 사용자 정의 메타데이터 서명 클래스를 만드는 방법.
  • 안전한 문서 처리를 위해 맞춤형 암호화를 구현합니다.
  • 암호화 옵션을 사용하여 메타데이터 서명을 검색하고 처리합니다.

먼저 환경을 설정하고 이러한 기능을 단계별로 살펴보겠습니다.

필수 조건

시작하기 전에 다음 사항을 확인하세요.

  1. 자바 개발 키트(JDK): 버전 8 이상.
  2. Maven 또는 Gradle: 종속성을 관리하기 위해.
  3. Java 라이브러리에 대한 GroupDocs.Signature: 23.12 버전 이상에 액세스해야 합니다.

Java 프로그래밍에 대한 기본적인 이해와 문서 메타데이터 처리에 대한 친숙함이 도움이 될 것입니다.

Java용 GroupDocs.Signature 설정

시작하려면 Java용 GroupDocs.Signature를 프로젝트 종속성에 추가하세요.

Maven 종속성

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

Gradle 구현

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

또는 다음에서 최신 버전을 다운로드하세요. Java 릴리스용 GroupDocs.Signature.

라이센스 취득 단계:

  • 무료 체험: 무료 체험판을 통해 기능을 살펴보세요.
  • 임시 면허: 장기 테스트를 위해 임시 라이센스를 얻으세요.
  • 구입: 생산용으로 사용하려면 다음에서 라이센스를 구매하는 것을 고려하세요. 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);
    
    // 게터와 세터
    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; }
}

설명:

  • @포맷속성: 메타데이터 속성을 정의하기 위해 클래스 속성을 장식합니다.
  • 게터와 세터: 사용자 정의 서명 데이터의 접근 및 수정을 허용합니다.

사용자 정의 암호화 구현

개요

사용자 지정 암호화를 통해 문서의 메타데이터 서명을 안전하게 보호할 수 있습니다. 이 가이드에서는 이러한 목적으로 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 라이브러리의 추가 기능을 살펴보고 특정 요구 사항에 맞게 다른 도구 또는 프레임워크와 통합하는 것을 고려해 보세요.