Java용 GroupDocs.Signature를 사용하여 Java QR 코드 서명 구현
소개
Java 애플리케이션에 QR 코드를 삽입하여 디지털 문서의 보안을 강화하세요. Java용 GroupDocs.Signature를 활용하면 문서의 진위성과 추적성을 효과적으로 보장할 수 있습니다. 이 가이드에서는 사용자 지정 데이터 서명 생성, QR 코드 서명 옵션 구성, 그리고 강력한 암호화를 통한 문서 보안 방법을 안내합니다.
배울 내용:
- GroupDocs.Signature를 사용하여 사용자 정의 데이터 서명 클래스를 만드는 방법
- Java 애플리케이션에서 QR 코드 서명 옵션 구성
- QR 코드로 문서 서명 및 사용자 정의 암호화 적용
필수 구성 요소를 살펴보고 이 기능을 프로젝트에 통합해 보겠습니다!
필수 조건
시작하기에 앞서, 개발 환경에 필요한 라이브러리와 종속성이 설정되어 있는지 확인하세요.
필수 라이브러리 및 버전
Java용 GroupDocs.Signature를 구현하려면 다음 종속성을 포함하세요.
메이븐
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
그래들
implementation 'com.groupdocs:groupdocs-signation:23.12'
최신 버전을 다음에서 직접 다운로드할 수도 있습니다. Java 릴리스용 GroupDocs.Signature.
환경 설정 요구 사항
- 작동하는 Java Development Kit(JDK)가 설치되어 있는지 확인하세요.
- IntelliJ IDEA나 Eclipse와 같은 통합 개발 환경(IDE)을 설정합니다.
지식 전제 조건
- 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 코드 서명 옵션 구성
개요
QR 코드 기호 옵션을 구성하여 크기, 정렬, 패딩 등 문서에 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();
// 사용자 정의 데이터 객체를 QR 코드로 직렬화합니다.
options.setData(documentSignature);
// QR 코드 유형을 지정하세요
options.setEncodeType(QrCodeTypes.QR);
// 정렬을 위한 패딩 구성
Padding padding = new Padding();
padding.setRight(10); // 픽셀 단위 오른쪽 패딩
padding.setBottom(10); // 픽셀 단위의 하단 패딩
options.setMargin(padding);
// QR 코드의 크기와 위치 정의
options.setHeight(100);
options.setWidth(100);
options.setVerticalAlignment(VerticalAlignment.Bottom);
options.setHorizontalAlignment(HorizontalAlignment.Right);
return options;
}
}
설명:
- QR코드 서명 옵션: QR 코드의 크기와 위치를 포함하여 QR 코드가 표시되는 방식을 관리합니다.
- 심문서 내에서 정렬을 조정합니다.
QR 코드 및 사용자 정의 암호화를 사용한 문서 서명
개요
QR 코드와 맞춤형 암호화를 결합하여 문서에 안전하게 서명하세요. 이를 통해 데이터 무결성과 기밀성이 보장됩니다.
단계별 구현
QR 코드로 문서에 서명하기
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"));
// QR 코드 옵션 설정
QrCodeSignOptions options = QrCodeSignOptionsConfig.setupQrCodeSignOptions(documentSignature);
// QR 코드 내 데이터에 암호화 적용
options.setDataEncryption(encryption);
// 문서에 서명하고 저장하세요
signature.sign(outputFilePath, options);
} catch (Exception e) {
throw new GroupDocsSignatureException(e.getMessage());
}
}
}
설명:
- CustomXOREncryption: QR 코드 데이터를 보호하기 위해 사용자 지정 암호화 전략을 구현합니다.
- UUID: 각 서명에 대한 고유 식별자를 생성합니다.