Implementacja podpisywania metadanych obrazu za pomocą szyfrowania w Javie przy użyciu GroupDocs.Signature

Wstęp

W dzisiejszym cyfrowym świecie, ochrona poufnych informacji w metadanych dokumentów jest kluczowa. Niezależnie od tego, czy chodzi o poufne umowy biznesowe, czy zdjęcia identyfikacyjne, zachowanie integralności i autentyczności metadanych obrazu pomaga zapobiegać nieautoryzowanemu dostępowi i manipulacjom. GroupDocs.Signature dla Java zapewnia solidne rozwiązanie umożliwiające bezpieczne podpisywanie i szyfrowanie metadanych obrazów.

Ten samouczek przeprowadzi Cię przez proces implementacji podpisywania metadanych obrazów za pomocą szyfrowania w Javie, wykorzystując zaawansowane funkcje GroupDocs.Signature. Wykonując te kroki, skutecznie zintegrujesz tę funkcjonalność ze swoimi aplikacjami Java.

Czego się nauczysz:

  • Podpisywanie metadanych dokumentu za pomocą GroupDocs.Signature dla Java
  • Implementacja niestandardowych podpisów obiektów z szyfrowaniem
  • Konfigurowanie bezpiecznego środowiska przy użyciu szyfrowania kluczem symetrycznym

Wymagania wstępne

Przed rozpoczęciem należy upewnić się, że spełnione są następujące wymagania wstępne:

Wymagane biblioteki i zależności:

  • GroupDocs.Signature dla Java: Upewnij się, że masz wersję 23.12 lub nowszą.

Wymagania dotyczące konfiguracji środowiska:

  • Zainstaluj Java Development Kit (JDK) na swoim komputerze.
  • Użyj zintegrowanego środowiska programistycznego (IDE), takiego jak IntelliJ IDEA, Eclipse lub NetBeans.

Wymagania wstępne dotyczące wiedzy:

  • Podstawowa znajomość programowania w Javie.
  • Znajomość Maven lub Gradle do zarządzania zależnościami.

Konfigurowanie GroupDocs.Signature dla języka Java

Aby użyć GroupDocs.Signature w swoim projekcie, uwzględnij niezbędne zależności w następujący sposób:

Korzystanie z Maven

Dodaj to do swojego pom.xml plik:

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

Korzystanie z Gradle

Uwzględnij to w swoim build.gradle plik:

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

Bezpośrednie pobieranie

Alternatywnie pobierz najnowszą wersję ze strony GroupDocs.Signature dla wydań Java.

Etapy uzyskania licencji

  • Bezpłatny okres próbny: Zacznij od wersji próbnej, aby poznać funkcje.
  • Licencja tymczasowa:Jeśli to konieczne, złóż wniosek o przeprowadzenie szeroko zakrojonych badań.
  • Zakup:Nabyj licencję do użytku produkcyjnego od Dokumenty grupy.

Podstawowa inicjalizacja i konfiguracja

Oto, w jaki sposób można zainicjować GroupDocs.Signature w aplikacji Java:

import com.groupdocs.signature.Signature;

public class InitializeSignature {
    public static void main(String[] args) {
        // Ścieżka do dokumentu
        String filePath = "path/to/your/document.jpg";
        
        // Utwórz nową instancję Signature
        Signature signature = new Signature(filePath);

        System.out.println("GroupDocs.Signature initialized successfully.");
    }
}

Przewodnik wdrażania

Funkcja: Podpis metadanych z obiektem niestandardowym

Przegląd

Funkcja ta umożliwia podpisywanie metadanych obrazu przy użyciu niestandardowego obiektu i szyfrowanie ich w celu zapewnienia większego bezpieczeństwa. Dzięki temu masz pewność, że dostęp do metadanych i ich modyfikację będą miały wyłącznie upoważnione osoby.

Wdrażanie krok po kroku

1. Zdefiniuj klasę danych podpisu dokumentu

Utwórz klasę, w której będziesz przechowywać informacje o metadanych:

import java.math.BigDecimal;
import java.util.Date;

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; }

    @FormatAttribute(propertyName = "SignID")
    public final String getAuthor() { return Author; }
    public final void setAuthor(String value) { Author = value; }

    @FormatAttribute(propertyName = "SAuth")
    public final Date getSigned() { return Signed; }
    public final void setSigned(Date value) { Signed = value; }

    @FormatAttribute(propertyName = "SDate", propertyFormat = "yyyy-MM-dd")
    public final BigDecimal getDataFactor() { return DataFactor; }
    public final void setDataFactor(BigDecimal value) { DataFactor = value; }
}
2. Wdrożenie logiki podpisu

Oto jak podpisać metadane za pomocą szyfrowania:

import com.groupdocs.signature.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;
import com.groupdocs.signature.domain.signatures.metadata.ImageMetadataSignature;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import com.groupdocs.signature.options.sign.MetadataSignOptions;

import java.io.File;
import java.nio.file.Paths;
import java.util.UUID;

public class SignMetadataWithCustomObject {
    // Zainicjuj ścieżki plików za pomocą symboli zastępczych
    String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleImage.jpg";
    String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY", 
                                       "SignedImageWithCustomMetadata/SampleImage_signed.jpg").getPath();

    public void run() throws Exception {
        Signature signature = new Signature(filePath);

        // Ustaw klucz i hasło do szyfrowania
        String key = "1234567890";
        String salt = "1234567890";
        IDataEncryption encryption = new SymmetricEncryption(
            SymmetricAlgorithmType.Rijndael, key, salt);

        MetadataSignOptions options = new MetadataSignOptions();
        DocumentSignatureData documentSignature = new DocumentSignatureData();
        
        // Ustaw niestandardowe właściwości metadanych
        documentSignature.setID(UUID.randomUUID().toString());
        documentSignature.setAuthor(System.getenv("USERNAME"));
        documentSignature.setSigned(new Date());
        documentSignature.setDataFactor(new BigDecimal("11.22"));

        ImageMetadataSignature mdDocument = new ImageMetadataSignature(41996, documentSignature);
        mdDocument.setDataEncryption(encryption);

        // Dodaj podpisy metadanych do opcji
        options.getSignatures().add(mdDocument);

        signature.sign(outputFilePath, options);
    }
}

Kluczowe opcje konfiguracji

  • Szyfrowanie symetryczne:Wykorzystuje algorytm Rijndael do szyfrowania.
  • Opcje znaku metadanych: Konfiguruje proces podpisywania i określa, które metadane mają zostać podpisane.
Wskazówki dotyczące rozwiązywania problemów
  • Upewnij się, że ścieżki do plików są poprawne i dostępne.
  • Sprawdź, czy zmienna środowiskowa USERNAME jest ustawiony prawidłowo.
  • Sprawdź, czy wersja biblioteki GroupDocs.Signature jest zgodna z zależnościami kodu.

Funkcja: Podpis metadanych z szyfrowaniem

Przegląd

Funkcja ta koncentruje się na szyfrowaniu podpisów metadanych w celu ochrony poufnych informacji zawartych w plikach obrazów.

Wdrażanie krok po kroku

1. Wdrożenie logiki szyfrowania

Oto jak podpisać metadane za pomocą szyfrowania:

import com.groupdocs.signature.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;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import com.groupdocs.signature.options.sign.MetadataSignOptions;

import java.io.File;
import java.nio.file.Paths;
import java.util.UUID;

public class SignMetadataWithEncryption {
    // Zainicjuj ścieżki plików za pomocą symboli zastępczych
    String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleImage.jpg";
    String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY", 
                                       "SignedImageWithEncryption/SampleImage_signed.jpg").getPath();

    public void run() throws Exception {
        Signature signature = new Signature(filePath);

        // Ustaw klucz i hasło do szyfrowania
        String key = "1234567890";
        String salt = "1234567890";
        IDataEncryption encryption = new SymmetricEncryption(
            SymmetricAlgorithmType.Rijndael, key, salt);

        MetadataSignOptions options = new MetadataSignOptions();
        DocumentSignatureData documentSignature = new DocumentSignatureData();
        
        // Ustaw niestandardowe właściwości metadanych
        documentSignature.setID(UUID.randomUUID().toString());
        documentSignature.setAuthor(System.getenv("USERNAME"));
        documentSignature.setSigned(new Date());
        documentSignature.setDataFactor(new BigDecimal("11.22"));

        ImageMetadataSignature mdDocument = new ImageMetadataSignature(41996, documentSignature);
        mdDocument.setDataEncryption(encryption);

        // Dodaj podpisy metadanych do opcji
        options.getSignatures().add(mdDocument);

        signature.sign(outputFilePath, options);
    }
}