들어가기 전에
PDF 문서는 우리의 개인 및 직업 생활에 필수적인 부분이 되었습니다. 기밀 비즈니스 보고서에서 민감한 개인 기록에 이르기까지 PDF는 중요한 정보를 저장하고 공유하는 데 널리 사용됩니다. 그러나 데이터 침해 및 무단 액세스의 위험이 증가함에 따라 PDF 파일의 보안 요소가 중요해졌습니다. 파이썬을 사용하여 PDF 파일을 암호화하고 해독하는 방법을 소개합니다.
※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.
- 원문: How to Encrypt and Decrypt PDF Files with Python
- URL: https://medium.com/@alice.yang_10652/how-to-encrypt-and-decrypt-pdf-files-with-python-124d86a70718
PDF 파일 암호화 및 암호 해독을 위한 파이썬 라이브러리
Python에서 PDF 파일을 암호화하고 해독하려면 Python 애플리케이션 내에서 PDF 파일을 생성, 읽기, 조작, 변환하도록 설계된 다기능 라이브러리인 Spire.PDF for Python을 사용할 수 있습니다. PyPI에서 다음 pip 명령을 사용하여 Python용 Spire.PDF를 설치할 수 있습니다.
pip install Spire.Pdf
Python용 Spire.PDF가 이미 설치되어 있고 최신 버전으로 업그레이드하려면 다음 pip 명령을 사용하세요.
pip install - upgrade Spire.Pdf
설치에 대한 자세한 내용은 [여기]를 참조하세요.
파이썬으로 PDF 암호화하기
PDF를 암호화하려면 파일을 열고 볼 때 필요한 사용자 비밀번호(열기 비밀번호)를 설정해야 합니다.
사용자 비밀번호(공개 비밀번호)란 무엇인가요?
- 사용자가 PDF 문서를 열고 보기 위해 입력해야 하는 비밀번호입니다.
- PDF 콘텐츠에 대한 액세스를 제한하여 권한이 있는 사람만 파일에 액세스할 수 있도록 합니다.
- 사용자 비밀번호는 PDF를 열 수 있는 액세스 권한을 부여하는 것 외에 추가적인 권한이나 제한을 제공하지 않습니다.
사용자 또는 열기 비밀번호를 설정하는 것 외에도 PDF 콘텐츠 보안에 사용할 암호화 수준 또는 알고리즘도 설정해야 합니다. Python용 Spire.PDF는 다음과 같은 암호화 수준 또는 알고리즘을 지원합니다.
- 40비트 RC4
- 128비트 RC4
- 128비트 AES
- 256비트 AES
Python을 사용하여 PDF 파일을 암호화하는 주요 단계는 다음과 같습니다.
- PdfDocument 인스턴스를 생성하고 PdfDocument.LoadFromFile() 메서드를 사용하여 PDF 파일을 로드합니다.
- PdfSecurityPolicy를 생성하고 문서를 여는 데 필요한 사용자 비밀번호를 설정합니다.
- PdfSecurityPolicy 클래스의 EncryptionAlgorithm 속성을 통해 PDF를 보호하는 데 사용할 암호화 알고리즘을 설정합니다.
- PdfDocument.Encrypt(securityPolicy:PdfSecurityPolicy) 메서드를 사용하여 PDF 문서를 암호화하는 보안 정책을 적용합니다.
- 암호화된 PDF 문서를 새 파일에 저장합니다.
다음 코드 예제는 Python을 사용하여 PDF 파일을 암호화하는 방법을 보여줍니다.
from spire.pdf.common import *
from spire.pdf import *
# Create a PdfDocument object
pdf = PdfDocument()
# Load an existing PDF file that needs to be encrypted
pdf.LoadFromFile("Sample.pdf")
# Create a security policy and set the user password required to open the document
securityPolicy = PdfPasswordSecurityPolicy("userpassword", str())
# Specify the encryption algorithm to use for securing the PDF
securityPolicy.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES_256
# Apply the security policy to encrypt the PDF document
pdf.Encrypt(securityPolicy)
# Save the encrypted PDF document to a new file
pdf.SaveToFile("Encrypt.pdf")
pdf.Close()
파이썬으로 PDF에서 보안 권한 설정하기
PDF 문서에 대한 보안 권한을 설정하려면 사용자 비밀번호 외에 소유자 비밀번호(권한 비밀번호)를 설정해야 합니다.
소유자 비밀번호(권한 비밀번호)란 무엇인가요?
- PDF 문서에 대해 수행할 수 있는 권한과 작업을 제어하는 데 사용됩니다.
- 이를 통해 문서 소유자는 PDF에서 인쇄, 복사, 수정 또는 콘텐츠 추출과 같은 특정 작업을 제한할 수 있습니다.
- 소유자 비밀번호는 일반적으로 사용자 비밀번호보다 더 강력하며, 소유자에게 PDF의 보안 설정에 대한 모든 권한을 부여합니다.
Python을 사용하여 PDF에서 보안 권한을 설정하는 주요 단계는 다음과 같습니다.
- PdfDocument 인스턴스를 생성하고 PdfDocument.LoadFromFile() 메서드를 사용하여 PDF 파일을 로드합니다.
- PdfSecurityPolicy를 생성하고 문서를 열 수 있는 사용자 비밀번호와 권한을 제한하는 소유자 비밀번호를 설정합니다.
- PdfSecurityPolicy 클래스의 EncryptionAlgorithm 속성을 통해 PDF 보안에 사용할 암호화 알고리즘을 설정합니다.
- 모든 권한을 제한한 다음 PdfSecurityPolicy 클래스의 DocumentPrivilege 속성을 통해 특정 권한만 허용합니다.
- PdfDocument.Encrypt(securityPolicy:PdfSecurityPolicy) 메서드를 사용하여 PDF 문서를 암호화하는 보안 정책을 적용합니다.
- 암호화된 PDF 문서를 새 파일에 저장합니다.
다음 코드 예제는 Python을 사용하여 PDF에서 보안 권한을 설정하는 방법을 보여줍니다.
from spire.pdf.common import *
from spire.pdf import *
# Create a PdfDocument object
pdf = PdfDocument()
# Load an existing PDF file that needs to be encrypted
pdf.LoadFromFile("Sample.pdf")
# Create a security policy and set the user password to open the document and the owner password to restrict permissions
securityPolicy = PdfPasswordSecurityPolicy("userpassword", "ownerpassword")
# Set the encryption algorithm
securityPolicy.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES_256
# Restrict all permissions
securityPolicy.DocumentPrivilege = PdfDocumentPrivilege.ForbidAll()
# Only allow printing of the document
securityPolicy.DocumentPrivilege.AllowPrint = True
# Encrypt all document content except metadata (optional, it allows search engines to access the document’s metadata)
# securityPolicy.EncryptMetadata = False
# Apply the security policy to encrypt the PDF document
pdf.Encrypt(securityPolicy)
# Save the encrypted PDF document to a new file
pdf.SaveToFile("EncryptWithPermissions.pdf")
pdf.Close()
파이썬으로 PDF 암호 해독하기
암호화된 PDF 파일은 사용자 비밀번호 또는 소유자 비밀번호로 열 수 있습니다. 파일이 열리면 PdfDocument.Decrypt() 메서드를 사용하여 암호를 해독할 수 있습니다. Python을 사용하여 암호화된 PDF 파일을 해독하는 주요 단계는 다음과 같습니다.
- PdfDocument 인스턴스를 생성하고 PdfDocument.LoadFromFile() 메서드를 사용하여 사용자 비밀번호 또는 소유자 비밀번호로 암호화된 PDF 파일을 로드합니다.
- PdfDocument.Decrypt() 메서드를 호출하여 PDF 파일의 암호를 해독합니다.
- 해독된 PDF 파일을 새 파일에 저장합니다.
다음 코드 예제는 Python을 사용하여 암호화된 PDF 파일을 해독하는 방법을 보여줍니다.
from spire.pdf.common import *
from spire.pdf import *
# Create a PdfDocument object
pdf = PdfDocument()
# Load an encrypted PDF document with either its user password or owner password
pdf.LoadFromFile("EncryptWithPermissions.pdf", "userpassword")
# Decrypt the PDF document
pdf.Decrypt("ownerpassword")
# Save the resulting document to a new file
pdf.SaveToFile("Decrypt.pdf")
pdf.Close()
마치며
파이썬을 이용하여 PDF 파일을 암호화하고, PDF 파일에 대한 보안 권한을 설정하고, PDF 파일을 복호화하는 방법에 대해 살펴보았습니다. 업무에 도움이 되시길 바랍니다.
'Python' 카테고리의 다른 글
파이썬을 사용하여 PDF에서 이미지와 이미지 정보 추출하기 (2) | 2024.09.29 |
---|---|
파이썬으로 Excel 워크시트 분할하기 (4) | 2024.09.28 |
파이썬을 사용하여 Excel에서 다양한 유형의 차트 만들기 (11) | 2024.09.14 |
파이썬을 사용하여 손쉽게 PDF 분할 및 병합하기 (2) | 2024.09.10 |
파이썬으로 MS Word 문서 읽는 방법 (1) | 2024.08.18 |