Java - PDF 문서를 암호화 또는 해독하는 방법

9858 단어 javaencryptdecryptpdf
계약서, 청구서 및 기타 파일과 같은 수많은 기밀 문서가 PDF 형식으로 저장됩니다. 인터넷을 통해 이러한 민감한 문서를 공유하는 것은 다른 사람이 귀하의 승인 없이 문서 내용에 액세스할 수 있기 때문에 위험할 수 있습니다. 암호로 문서를 암호화하면 이 문제를 효율적으로 해결할 수 있습니다. 이 기사에서는 Spire.PDF for Java 라이브러리를 사용하여 Java에서 PDF 문서를 암호화하거나 해독하는 방법을 소개합니다.

종속성 추가



방법 1: maven을 사용하는 경우 프로젝트의 pom.xml 파일에 다음 코드를 추가하여 애플리케이션에서 JAR 파일을 쉽게 가져올 수 있습니다.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>8.7.0</version>
    </dependency>
</dependencies>


방법 2: maven을 사용하지 않는 경우 this link에서 JAR 파일을 다운로드하고 zip 파일을 추출한 다음 lib 폴더 아래의 Spire.Pdf.jar 파일을 종속 항목으로 프로젝트에 가져올 수 있습니다.

Java를 사용하여 PDF 문서 암호화



PDF 문서는 문서 열기 암호와 권한 암호의 두 가지 유형의 암호로 암호화할 수 있습니다.

문서 열기 비밀번호
PDF를 열려면 사용자 암호라고도 하는 문서 열기 암호가 필요합니다.

권한 암호
마스터 또는 소유자 암호라고도 하는 권한 암호는 PDF의 권한 설정을 변경하는 데 사용됩니다. 이 암호를 사용하면 콘텐츠 인쇄, 편집 및 복사와 같은 PDF의 특정 기능을 제한할 수 있습니다.

PDF 문서가 두 가지 유형의 암호로 암호화된 경우 수신자는 두 암호 중 하나를 사용하여 PDF를 열 수 있습니다. 그러나 설정한 제한을 변경해야 하는 경우 권한 암호를 입력해야 합니다.

Spire.PDF를 사용하면 개발자가 PdfDocument.getSecurity().encrypt(openPassword, permissionPassword, PdfPermissionsFlags, PdfEncryptionKeySize) 메서드를 사용하여 열기 암호 및 권한 암호로 PDF 문서를 암호화할 수 있습니다. 다음은 이 기능을 구현하는 세부 단계입니다.
  • PdfDocument 클래스의 인스턴스를 초기화합니다.
  • PdfDocument.loadFromFile() 메서드를 사용하여 PDF 파일을 로드합니다.
  • PdfDocument.getSecurity().encrypt(openPassword, permissionPassword, PdfPermissionsFlags, PdfEncryptionKeySize) 메서드를 사용하여 열기 및 권한 암호로 PDF를 암호화합니다.
  • PdfDocument.saveToFile() 메서드를 사용하여 결과 PDF를 저장합니다.

  • import com.spire.pdf.PdfDocument;
    import com.spire.pdf.security.PdfEncryptionKeySize;
    import com.spire.pdf.security.PdfPermissionsFlags;
    
    import java.util.EnumSet;
    
    public class Encryption {
        public static void main(String []args){
            //Create a PdfDocument instance
            PdfDocument pdf = new PdfDocument();
    
            //Load the PDF document
            pdf.loadFromFile("Sample.pdf");
    
            //Encrypt the PDF with open and permissions passwords
            pdf.getSecurity().encrypt("openPassword", "permissionPassword", EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Copy_Content), PdfEncryptionKeySize.Key_256_Bit);
    
            //Save and close
            pdf.saveToFile("Encryption.pdf");
            pdf.close();
        }
    }
    


    Java를 사용하여 PDF 문서 해독



    아래 단계에 표시된 것처럼 PdfDocument.getSecurity().encrypt(openPassword, permissionPassword, PdfPermissionsFlags, PdfEncryptionKeySize, originalPermissionPassword) 메서드를 사용하여 열기 암호와 권한 암호를 빈 것으로 설정하여 암호화된 PDF 문서를 해독할 수 있습니다.
  • PdfDocument 클래스의 인스턴스를 초기화합니다.
  • PdfDocument.loadFromFile(filePath, password) 메서드를 사용하여 암호로 암호화된 PDF를 로드합니다.
  • PdfDocument.getSecurity().encrypt(openPassword, permissionPassword, PdfPermissionsFlags, PdfEncryptionKeySize, originalPermissionPassword) 메서드를 사용하여 열기 및 권한 암호를 빈 것으로 설정하여 문서를 해독합니다.
  • PdfDocument.saveToFile() 메서드를 사용하여 결과 PDF를 저장합니다.

  • import com.spire.pdf.PdfDocument;
    import com.spire.pdf.security.PdfEncryptionKeySize;
    import com.spire.pdf.security.PdfPermissionsFlags;
    
    public class Decryption {
        public static void main(String []args) throws Exception {
            //Create a PdfDocument instance
            PdfDocument pdf = new PdfDocument();
    
            //Load the encrypted PDF with password
            pdf.loadFromFile("Encryption.pdf", "openPassword");
    
            //Decrypt the PDF by setting the open and permissions password as empty
            pdf.getSecurity().encrypt("", "", PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key_256_Bit, "permissionPassword");
    
            //Save and close
            pdf.saveToFile("Decryption.pdf");
            pdf.close();
        }
    }
    

    좋은 웹페이지 즐겨찾기