การป้องกันการเขียนพรีเซนเทชันใน Python

บทนำ

รหัสผ่านการป้องกันการเขียนจำกัดการแก้ไขพรีเซนเทชันแต่ไม่ได้เข้ารหัสเนื้อหา ผู้ใช้สามารถโหลดและดูพรีเซนเทชันที่ถูกป้องกันการเขียนได้โดยไม่ต้องใช้รหัสผ่าน ขึ้นอยู่กับแอปพลิเคชัน พวกเขาอาจสามารถแก้ไขเนื้อหาและบันทึกเป็นชื่ออื่นได้ ดังนั้นการป้องกันการเขียนจึงไม่ควรถือเป็นกลไกการรักษาความลับ

รหัสผ่านการเปิดทำหน้าที่แตกต่าง: มันเข้ารหัสพรีเซนเทชันและจำเป็นต้องใช้เพื่อโหลดเนื้อหา เพื่อเข้ารหัสพรีเซนเทชันหรือยืนยันรหัสผ่านการเปิด ดู Password-Protect Presentations.

ขั้นตอนการทำงานในบทความนี้ใช้ได้กับพรีเซนเทชันทั้งรูปแบบ PPT และ PPTX ตัวอย่างใช้ไฟล์ PPTX; เมื่อบันทึกเป็น PPT ให้ใช้ส่วนขยาย .ppt และรูปแบบการบันทึก PPT ที่สอดคล้องกัน

ตั้งค่าการป้องกันการเขียนบนพรีเซนเทชัน

ใช้ ProtectionManager.set_write_protection เพื่อกำหนดรหัสผ่านสำหรับการแก้ไขพรีเซนเทชัน การบันทึกพรีเซนเทชันจะบันทึกการตั้งค่าการป้องกันไว้

ตัวอย่างต่อไปนี้ตั้งค่าการป้องกันการเขียนบนพรีเซนเทชัน PPTX:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as presentation:
    presentation.protection_manager.set_write_protection("modify_password")
    presentation.save("write-protected-pres.pptx", slides.export.SaveFormat.PPTX)

โหลดพรีเซนเทชันที่มีการป้องกันการเขียน

เนื่องจากการป้องกันการเขียนไม่ได้เข้ารหัสเนื้อหาพรีเซนเทชัน จึงไม่จำเป็นต้องใช้รหัสผ่านเพื่อโหลดพรีเซนเทชัน รหัสผ่านมีความสำคัญเฉพาะเมื่อทำการตรวจสอบสิทธิ์การแก้ไขพรีเซนเทชันที่ถูกป้องกัน

import aspose.slides as slides

with slides.Presentation("write-protected-pres.pptx") as presentation:
    print("Slide count: " + str(len(presentation.slides)))

อย่าใส่รหัสผ่านการป้องกันการเขียนให้กับ LoadOptions.password. คุณสมบัตินี้รับรหัสผ่านการเปิดสำหรับเนื้อหาที่เข้ารหัส หากพรีเซนเทชันมีทั้งสองประเภทของการป้องกัน ให้ใส่รหัสผ่านการเปิดเพื่อโหลดพรีเซนเทชันและจัดการรหัสผ่านการป้องกันการเขียนแยกกัน

ลบการป้องกันการเขียนจากพรีเซนเทชัน

ใช้ ProtectionManager.remove_write_protection เพื่อลบข้อจำกัดการแก้ไข แล้วบันทึกพรีเซนเทชัน

import aspose.slides as slides

with slides.Presentation("write-protected-pres.pptx") as presentation:
    presentation.protection_manager.remove_write_protection()
    presentation.save("write-protection-removed.pptx", slides.export.SaveFormat.PPTX)

ตรวจสอบว่าพรีเซนเทชันถูกป้องกันการเขียนหรือไม่

เพื่อตรวจสอบไฟล์โดยไม่ต้องสร้างอินสแต่นซ์ Presentation เต็มรูปแบบ ให้เรียก PresentationFactory.get_presentation_info และตรวจสอบ PresentationInfo.is_write_protected. คุณสมบัตินี้ใช้ NullableBool และคืนค่า NullableBool.TRUE เมื่อพบการป้องกันการเขียน

import aspose.slides as slides

presentation_info = slides.PresentationFactory.instance.get_presentation_info("write-protected-pres.pptx")

if presentation_info.is_write_protected == slides.NullableBool.TRUE:
    print("The presentation is write protected.")
else:
    print("Write protection was not detected.")

รูปแบบ overload ที่รับสตรีมของ PresentationFactory.get_presentation_info ให้ข้อมูลเดียวกันสำหรับพรีเซนเทชันที่ส่งเป็นสตรีม

ตรวจสอบรหัสผ่านการป้องกันการเขียน

ใช้ PresentationInfo.check_write_protection เพื่อตรวจสอบรหัสผ่านการแก้ไขโดยไม่ต้องโหลดพรีเซนเทชันเต็มรูปแบบ ตรวจสอบ PresentationInfo.is_write_protected ก่อนเพื่อให้แอปพลิเคชันขอหรือยืนยันรหัสผ่านเฉพาะเมื่อมีการป้องกันการเขียน

import aspose.slides as slides

presentation_info = slides.PresentationFactory.instance.get_presentation_info("write-protected-pres.pptx")

if presentation_info.is_write_protected != slides.NullableBool.TRUE:
    print("The presentation is not write protected.")
elif presentation_info.check_write_protection("modify_password"):
    print("The write-protection password is correct.")
else:
    print("The write-protection password is incorrect.")

PresentationInfo.check_write_protection ตรวจสอบเฉพาะรหัสผ่านการป้องกันการเขียนเท่านั้น ไม่ได้ตรวจสอบรหัสผ่านการเปิดหรือกำหนดว่าข้อมูลที่เข้ารหัสสามารถโหลดได้หรือไม่ อีกด้านหนึ่ง PresentationInfo.check_password ตรวจสอบเฉพาะรหัสผ่านการเปิด หากพรีเซนเทชันเต็มรูปแบบได้โหลดแล้ว ProtectionManager.check_write_protection ให้การตรวจสอบการป้องกันการเขียนที่เทียบเคียงผ่านผู้จัดการการป้องกันของมัน

ในแอปพลิเคชันที่นำไปใช้จริง อย่าบันทึกรหัสผ่านหรือรวมไว้ในข้อความวินิจฉัย หลีกเลี่ยงการตรวจสอบซ้ำโดยไม่จำเป็นและเก็บรหัสผ่านในหน่วยความจำเฉพาะระยะเวลาที่จำเป็นเท่านั้น

คำถามที่พบบ่อย

การป้องกันการเขียนเข้ารหัสพรีเซนเทชันหรือไม่?

ไม่. มันจำกัดการแก้ไขแต่ให้เนื้อหาพรีเซนเทชันยังสามารถโหลดและดูได้

จำเป็นต้องใช้รหัสผ่านการป้องกันการเขียนเพื่อเปิดพรีเซนเทชันหรือไม่?

ไม่. มีเพียงรหัสผ่านการเปิดเท่านั้นที่จำเป็นเพื่อโหลดเนื้อหาพรีเซนเทชันที่เข้ารหัส

พรีเซนเทชันสามารถมีทั้งรหัสผ่านการเปิดและรหัสผ่านการป้องกันการเขียนได้หรือไม่?

ได้. ให้ใส่รหัสผ่านการเปิดผ่านตัวเลือกการโหลดเพื่อเปิดพรีเซนเทชันที่เข้ารหัส และตรวจสอบรหัสผ่านการป้องกันการเขียนแยกต่างหากเมื่อจำเป็นต้องได้รับสิทธิ์การแก้ไข