반응형
드디어 JAVA 암호화의 마지막..
JAVA로 PDF 파일 암호화 하는 코드를 포스팅한다.
전반적인 로직은 이전 포스팅들과 같으나
PDF 암호화는 사용하는 라이브러리가 살짝 다르니,
참고바란다.
(PDF 암호화 라이브러리는 org.apache.pdfbox 를 사용한다.)
✅ pom.xml
- 마지막 'org.apache.pdfbox' 만 사용해도 무방할듯 싶다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>TEST2</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.2</version>
</dependency>
<!-- .pdf 파일 암호화 -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.22</version>
</dependency>
</dependencies>
</project>
✅ PDF 암호화 코드
package org.example;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
String inputFilePath = "C:/test/자격득실확인서.pdf"; // 암호화할 PPTX 파일 경로
String outputFilePath = "C:/test/자격득실확인서_e.pdf"; // 암호화된 파일 저장 경로
String password = "930608"; // 암호
try {
// PDF 파일 열기
PDDocument document = PDDocument.load(new File(inputFilePath));
// 암호화 설정
//int keyLength = 128; // 키 길이 --> 생략가능
AccessPermission accessPermission = new AccessPermission();
StandardProtectionPolicy spp = new StandardProtectionPolicy(password, password, accessPermission);
//spp.setEncryptionKeyLength(keyLength);
spp.setPermissions(accessPermission);
// PDF 파일 암호화
document.protect(spp);
// 암호화된 PDF 파일 저장
document.save(outputFilePath);
document.close();
System.out.println("암호화가 완료되었습니다: " + outputFilePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
- inputFilePath 변수 : 암호화 할 pdf 파일 경로 (*확장자 까지 적을것)
- outputFilePath 변수 : pdf 암호화 작업 후 파일을 저장할 경로 (*확장자 까지 적을것)
- password 변수 : pdf 파일에 걸 암호
실행방법 및 로직은 이전 포스팅과 같으니,
궁금하신분은 이전 포스팅 참고하시면 될 듯 싶습니다.
2024.09.07 - [공부/JAVA | JSP&Servlet | Spring] - [JAVA] PPT 암호화 , PPTX 암호화 (org.apache.poi)
2024.09.18 - [공부/JAVA | JSP&Servlet | Spring] - [JAVA] 엑셀 암호화, xls 암호화, xlsx 암호화 (org.apache.poi)
반응형
'공부 > JAVA | JSP&Servlet | Spring' 카테고리의 다른 글
[JAVA] 워드 암호화, doc 암호화, docx 암호화 (org.apache.poi) (0) | 2024.11.17 |
---|---|
[JAVA] 엑셀 암호화, xls 암호화, xlsx 암호화 (org.apache.poi) (2) | 2024.09.18 |
[JAVA] PPT 암호화 , PPTX 암호화 (org.apache.poi) (1) | 2024.09.07 |
[JAVA 에러] nested excption is java.lang.NoSuchMethodError: xxx.xxx.xxx.xxxx.access$0 에러 해결 (ft. 클래스$0, $1 파일들..) (0) | 2024.05.19 |
[JAVA] JDK 설치 및 환경변수 설정하는 방법 완벽정리! (0) | 2019.09.03 |