เพิ่มลายเซ็นดิจิทัลให้กับงานนำเสนอด้วย Python
บทนำ
ใบรับรองดิจิทัล ถูกใช้เพื่อสร้างงานนำเสนอ PowerPoint ที่มีการป้องกันด้วยรหัสผ่าน โดยระบุว่าได้สร้างโดยองค์กรหรือบุคคลเฉพาะ ใบรับรองดิจิทัลสามารถได้รับโดยติดต่อกับองค์กรที่ได้รับอนุญาต‑หน่วยรับรองใบรับรอง หลังจากติดตั้งใบรับรองดิจิทัลลงในระบบแล้ว สามารถใช้เพื่อเพิ่มลายเซ็นดิจิทัลให้กับงานนำเสนอผ่านเมนู 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:
# สร้างอ็อบเจกต์ DigitalSignature ด้วยไฟล์ PFX และรหัสผ่าน PFX
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.")
คำถามที่พบบ่อย
ฉันสามารถลบลายเซ็นที่มีอยู่ในไฟล์ได้หรือไม่?
ใช่. คอลเลกชันลายเซ็นดิจิทัลสนับสนุนการ ลบรายการเดี่ยว และการ ลบทั้งหมด; หลังจากคุณบันทึกไฟล์ งานนำเสนอจะไม่มีลายเซ็นใด ๆ.
ไฟล์จะกลายเป็น “อ่านอย่างเดียว” หลังจากลงลายเซ็นหรือไม่?
ไม่. ลายเซ็นทำให้ข้อมูลคงความสมบูรณ์และแสดงความเป็นผู้เขียน แต่ไม่บล็อกการแก้ไข เพื่อจำกัดการแก้ไขให้รวมกับ “อ่านอย่างเดียว” หรือรหัสผ่าน.
ลายเซ็นจะแสดงผลอย่างถูกต้องในเวอร์ชันต่าง ๆ ของ PowerPoint หรือไม่?
ลายเซ็นถูกสร้างสำหรับคอนเทนเนอร์ OOXML (PPTX) เวอร์ชัน PowerPoint สมัยใหม่ที่รองรับลายเซ็น OOXML จะแสดงสถานะของลายเซ็นเหล่านั้นอย่างถูกต้อง.