Java 프로그램을 통해 PDF 문서를 암호화하거나 해독하는 방법
PDF 문서 암호화는 파일 내용을 보호하는 데 사용되는 기능입니다. 암호화된 문서를 열고 보려면 비밀번호가 필요합니다. 이 기능은 PDF 파일의 무단 액세스, 복사 및 수정을 효과적으로 방지합니다. Free Spire.PDF for Java는 PDF 문서의 프로그래밍 방식 암호화 및 암호 해독을 지원하며 이 프로세스에는 타사 소프트웨어를 설치할 필요가 없습니다. 자세한 작업 단계 및 관련 코드는 다음 내용을 참조하세요.
필요한 도구
IntelliJ IDEA 2018 (jdk 1.8.0)
Free Spire.PDF for Java는 PDF 문서 생성, 편집 및 변환을 지원하는 무료 Java 라이브러리입니다. 단, 이용시 일부 페이지 제한이 있을 수 있습니다.
또는 직접 상용 버전 체험판을 신청하세요.
상용 버전 Spire.PDF for Java
무료 시험판 Temporary License
준비 작업
다음 링크에서Free Spire.PDF for Java를 다운로드하고 압축을 푸세요.
IDEA에서 새 프로젝트를 만들고 열어주세요.
File > Project Structure > Modules >Dependencies을 차례로 클릭합니다.
"+"에서 JAR or Directories를 선택합니다.
압축 해제된 lib 폴더에서 Spire.Pdf.jar를 찾아 해당 파일을 프로젝트에 추가하세요.
PDF 문서 암호화
먼저 필요한 클래스와 열거형을 가져옵니다. 그런 다음 PDF 문서 인스턴스를 만들어 암호화해야 하는 문서를 로드합니다. 그런 다음 열기 비밀번호 및 권한 비밀번호 등을 포함하여 필수 매개변수를 사용자 정의합니다. 여기서는 권한 암호화 설정을 위한 열거형 세트도 생성합니다. PDF를 암호화하려면 PdfDocument.getSecurity().encrypt() 메소드를 호출하십시오. 마지막으로 결과 문서를 저장하고 리소스를 해제합니다.
import java.util.EnumSet;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;
public class EncryptPDF {
public static void main(String[] args) {
//PDF 문서 인스턴스 생성
PdfDocument pdf = new PdfDocument();
//암호화할 문서 로드
pdf.loadFromFile("sample.pdf");
//문서 암호화
PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;
String openPassword = "123456";
String permissionPassword = "test";
EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);
pdf.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize);
//결과 문서 저장 및 리소스 해제
pdf.saveToFile("Encrypt.pdf");
pdf.close();
}
}PDF 문서 해독
문서를 복호화할 때, 복호화해야 하는 문서를 로드하려면 열기 비밀번호를 입력해야 합니다. 그런 다음 PdfDocument 개체의 getSecurity() 메서드를 호출하여 PdfSecurity 개체를 얻고 해당 encrypt() 메서드를 호출하여 문서를 해독합니다. 이 방법에서는 빈 문자열을 시작 비밀번호와 권한 비밀번호로 차례로 사용하고 기본 권한 플래그를 얻은 다음 복호화 키 크기를 256비트로 설정하고 원래 권한 비밀번호를 입력합니다. 마지막으로 결과 문서를 저장하고 리소스를 해제합니다.
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;
public class DecryptPDF {
public static void main(String[] args) throws Exception {
//PDF 문서 인스턴스 생성
PdfDocument pdf = new PdfDocument();
//비밀번호를 입력하여 복호화할 PDF 문서 로드
pdf.loadFromFile("Encrypt.pdf", "123456");
//문서 복호화
pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.getDefaultPermissions(), PdfEncryptionKeySize.Key_256_Bit, "test");
//결과 문서 저장 및 리소스 해제
pdf.saveToFile("Decrypt.pdf");
pdf.close();
}
}