Python으로 프레젠테이션에 디지털 서명 추가
소개
Digital certificate는 비밀번호가 보호된 PowerPoint 프레젠테이션을 만들 때 사용되며, 특정 조직이나 사람이 만든 것으로 표시됩니다. Digital certificate는 인증 기관과 연락하여 얻을 수 있습니다. 시스템에 Digital certificate를 설치한 후에는 File -> Info -> Protect Presentation을 통해 프레젠테이션에 디지털 서명을 추가할 수 있습니다.
프레젠테이션에는 여러 개의 디지털 서명이 포함될 수 있습니다. 디지털 서명이 프레젠테이션에 추가되면 PowerPoint에 다음과 같은 특수 메시지가 표시됩니다.
프레젠테이션에 서명을 추가하거나 서명의 진위 여부를 확인하려면 Aspose.Slides API가 제공하는 DigitalSignature 클래스, DigitalSignatureCollection 클래스 및 Presentation.digital_signatures 속성을 사용할 수 있습니다. 현재 디지털 서명은 PPTX 형식에서만 지원됩니다.
PFX 인증서에서 디지털 서명 추가
아래 코드 샘플은 PFX 인증서에서 디지털 서명을 추가하는 방법을 보여줍니다.
- PFX 파일을 열고 PFX 비밀번호를 DigitalSignature 객체에 전달합니다.
- 만든 서명을 프레젠테이션 객체에 추가합니다.
import aspose.slides as slides
with slides.Presentation() as pres:
# PFX 파일과 PFX 비밀번호로 DigitalSignature 객체 생성
signature = slides.DigitalSignature(path + "testsignature1.pfx", "testpass1")
# 새 디지털 서명에 대한 주석
signature.comments = "Aspose.Slides digital signing test."
# 프레젠테이션에 디지털 서명 추가
pres.digital_signatures.add(signature)
# 프레젠테이션 저장
pres.save("SomePresentationSigned.pptx", slides.export.SaveFormat.PPTX)
이제 프레젠테이션이 디지털 서명되었고 수정되지 않았는지 확인할 수 있습니다.
# 프레젠테이션 열기
with slides.Presentation("SomePresentationSigned.pptx") as pres:
if len(pres.digital_signatures) > 0:
allSignaturesAreValid = True
print("Signatures used to sign the presentation: ")
# 모든 디지털 서명이 유효한지 확인
for signature in pres.digital_signatures :
print(signature.certificate.subject_name.name + ", "
+ signature.sign_time.strftime("yyyy-MM-dd HH:mm") + " -- " + "VALID" if signature.is_valid else "INVALID")
allSignaturesAreValid = allSignaturesAreValid and signature.is_valid
if allSignaturesAreValid:
print("Presentation is genuine, all signatures are valid.")
else:
print("Presentation has been modified since signing.")
FAQ
파일에서 기존 서명을 제거할 수 있나요?
예. 디지털 서명 컬렉션은 개별 항목 제거와 전체 삭제를 지원합니다. 파일을 저장하면 프레젠테이션에 서명이 남지 않습니다.
서명 후 파일이 “읽기 전용”이 되나요?
아니요. 서명은 무결성과 저자를 보존하지만 편집을 차단하지는 않습니다. 편집을 제한하려면 “읽기 전용” 또는 비밀번호와 결합하세요.
다양한 PowerPoint 버전에서 서명이 정상적으로 표시되나요?
이 서명은 OOXML(PPTX) 컨테이너용으로 생성되었습니다. OOXML 서명을 지원하는 최신 PowerPoint 버전에서는 해당 서명의 상태가 올바르게 표시됩니다.