محافظت از ارائه‌ها با رمز عبور در پایتون

بررسی کلی

یک رمز عبور باز کردن یک ارائه را رمزگذاری می‌کند. برای بارگذاری و مشاهدهٔ محتوای ارائه، رمز عبور صحیح ضروری است، بنابراین این حفاظت محرمانگی را فراهم می‌کند.

رمز عبور باز کردن با رمز عبور حفاظت نوشتاری متفاوت است. حفاظت نوشتاری تغییرات را محدود می‌کند اما محتوای ارائه را رمزگذاری نمی‌کند و مانع از بارگذاری ارائه نمی‌شود. برای مدیریت رمزها برای اصلاح ارائه‌ها، به Write-Protect Presentations مراجعه کنید.

گردش‌های کاری زیر برای هر دو نوع ارائهٔ PPT و PPTX اعمال می‌شود. مثال‌ها از هر دو قالب استفاده می‌کنند که رفتار مبتنی بر فایل و مبتنی بر جریان آن‌ها مهم است.

رمزگذاری یک ارائه با رمز عبور باز کردن

از ProtectionManager.encrypt برای اختصاص یک رمز عبور باز کردن استفاده کنید. سپس از Presentation.save برای ذخیرهٔ ارائهٔ رمزگذاری‌شده استفاده کنید.

مثال زیر یک ارائهٔ PPTX را رمزگذاری می‌کند:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as presentation:
    presentation.protection_manager.encrypt("open_password")
    presentation.save("encrypted-pres.pptx", slides.export.SaveFormat.PPTX)

حفظ عمومی ویژگی‌های سند

به‌طور پیش‌فرض، Aspose.Slides ویژگی‌های سند را در رمزگذاری ارائه شامل می‌شود. ویژگی ProtectionManager.encrypt_document_properties این رفتار را به‌صورت مستقل از رمزگذاری محتوای اسلاید کنترل می‌کند. قبل از فراخوانی ProtectionManager.encrypt آن را روی False تنظیم کنید زمانی که یک سیستم فهرست‌سازی، طبقه‌بندی، جستجو یا مدیریت سند باید فراداده‌ها را بدون رمز عبور باز کردن بخواند.

مثال زیر یک ارائهٔ PPTX رمزگذاری‌شده ایجاد می‌کند در حالی که ویژگی‌های سند داخلی آن عمومی می‌مانند:

import aspose.slides as slides

with slides.Presentation() as presentation:
    properties = presentation.document_properties
    properties.author = "Contoso Knowledge Management"
    properties.title = "Quarterly Product Roadmap"
    properties.keywords = "roadmap, planning, internal"

    presentation.slides[0].name = "Encrypted presentation content"
    presentation.protection_manager.encrypt_document_properties = False
    presentation.protection_manager.encrypt("open_password")
    presentation.save("public-properties-encrypted.pptx", slides.export.SaveFormat.PPTX)

تنظیم encrypt_document_properties روی False اسلایدها، مسترها، طرح‌بندی‌ها، اشکال، رسانه‌ها یا سایر محتوای ارائه را عمومی نمی‌کند. این تنظیم فقط بر ویژگی‌های سند تأثیر دارد. برای خواندن آن ویژگی‌ها بدون بارگذاری محتوای رمزگذاری‌شده، به Manage Presentation Properties مراجعه کنید.

بارگذاری یک ارائهٔ رمزگذاری‌شده

مقدار LoadOptions.password را به رمز عبور باز کردن تنظیم کنید و هنگام بارگذاری فایل این گزینه‌ها را به Presentation پاس دهید. بارگذاری در صورتی که رمز عبور باز کردن لازم باشد اما رمز ارائه‌شده یافت نشود یا نادرست باشد، با شکست مواجه می‌شود.

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.password = "open_password"

with slides.Presentation("encrypted-pres.pptx", load_options) as presentation:
    # کار با ارائه رمزگشایی‌شده.
    pass

حذف رمزنگاری از یک ارائه

ارائه را با رمز عبور باز کردن آن بارگذاری کنید، ProtectionManager.remove_encryption را فراخوانی کنید و نتیجه را ذخیره کنید. سپس می‌توان ارائهٔ ذخیره‌شده را بدون نیاز به رمز عبور بارگذاری کرد.

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.password = "open_password"

with slides.Presentation("encrypted-pres.pptx", load_options) as presentation:
    presentation.protection_manager.remove_encryption()
    presentation.save("encryption-removed.pptx", slides.export.SaveFormat.PPTX)

اعتبارسنجی رمز عبور باز کردن قبل از بارگذاری

از PresentationFactory.get_presentation_info برای به‌دست‌آوردن PresentationInfo بدون ایجاد یک نمونهٔ کامل از ارائه استفاده کنید. قبل از درخواست یا اعتبارسنجی رمز عبور، PresentationInfo.is_password_protected را بررسی کنید. زمانی که حفاظت وجود دارد، مقدار ارائه‌شده را با PresentationInfo.check_password اعتبارسنجی کنید.

گردش کار مسیر فایل

مثال زیر یک رمز عبور باز کردن برای یک فایل PPTX را اعتبارسنجی می‌کند، مقدار اعتبارسنجی‌شده را به LoadOptions.password می‌گذارد و سپس ارائهٔ کامل را بارگذاری می‌کند:

import aspose.slides as slides

file_path = "protected-presentation.pptx"
password = "open_password"
presentation_info = slides.PresentationFactory.instance.get_presentation_info(file_path)

if not presentation_info.is_password_protected:
    print("The presentation does not have an opening password.")
elif not presentation_info.check_password(password):
    print("The opening password is incorrect.")
else:
    load_options = slides.LoadOptions()
    load_options.password = password

    with slides.Presentation(file_path, load_options) as presentation:
        print("The presentation was validated and loaded successfully.")

گردش کار جریان

نسخهٔ جریان‌دار PresentationFactory.get_presentation_info همان گردش کار را فراهم می‌کند. قبل از بارگذاری ارائهٔ کامل از آن جریان، موقعیت یک جریان قابل جستجو را بازنشانی کنید.

مثال زیر از یک فایل PPT استفاده می‌کند:

import aspose.slides as slides

password = "open_password"

with open("protected-presentation.ppt", "rb") as presentation_stream:
    presentation_info = slides.PresentationFactory.instance.get_presentation_info(presentation_stream)

    if not presentation_info.is_password_protected:
        print("The presentation does not have an opening password.")
    elif not presentation_info.check_password(password):
        print("The opening password is incorrect.")
    else:
        presentation_stream.seek(0)
        load_options = slides.LoadOptions()
        load_options.password = password

        with slides.Presentation(presentation_stream, load_options) as presentation:
            print("The presentation was validated and loaded successfully.")

مقادیر برگشتی CheckPassword

PresentationInfo.check_password فقط زمانی که ارائه دارای رمز عبور باز کردن باشد و رمز ارائه‌شده صحیح باشد، True برمی‌گرداند. در هر یک از موارد زیر False برمی‌گرداند:

  • رمز عبور نادرست است.
  • ارائه رمز عبور باز کردن ندارد.
  • رمز عبور ارائه‌شده None یا خالی است.

رفتار برای ارائه‌های PPT و PPTX یکسان است.

بررسی اینکه آیا یک ارائهٔ بارگذاری‌شده رمزگذاری شده است یا خیر

پس از بارگذاری یک ارائه با رمز عبور صحیح، ProtectionManager.is_encrypted را بررسی کنید تا تأیید کنید که ارائهٔ منبع رمزگذاری شده است. برای شناسایی حفاظت رمز عبور باز کردن قبل از بارگذاری، همان‌طور که در بالا نشان داده شد، از PresentationInfo.is_password_protected استفاده کنید.

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.password = "open_password"

with slides.Presentation("encrypted-pres.pptx", load_options) as presentation:
    is_encrypted = presentation.protection_manager.is_encrypted
    print("The presentation is encrypted: " + str(is_encrypted))

توصیه‌های امنیتی

رمزگذاری یک ارائه به‌صورت آنلاین

  1. برنامهٔ Aspose.Slides Lock را باز کنید.
  2. ارائه را انتخاب یا بارگذاری کنید.
  3. رمز عبوری برای حفاظت از مشاهده وارد کنید.
  4. در صورت تمایل رمز عبور جداگانه‌ای برای حفاظت از ویرایش وارد کنید.
  5. حفاظت را اعمال کرده و فایل حاصل را دانلود کنید.

سوالات متداول

تفاوت رمز عبور باز کردن و رمز عبور حفاظت نوشتاری چیست؟

یک رمز عبور باز کردن ارائه را رمزگذاری می‌کند و برای بارگذاری محتوای آن ضروری است. یک رمز عبور حفاظت نوشتاری تغییرات را محدود می‌کند بدون اینکه محتوا را رمزگذاری کند.

آیا می‌توانم رمز عبور باز کردن را بدون بارگذاری تمام اسلایدها اعتبارسنجی کنم؟

بله. اطلاعات ارائه را به‌دست آورید، بررسی کنید که آیا حفاظت رمز عبور باز کردن موجود است یا خیر، و قبل از ایجاد یک نمونهٔ کامل از ارائه، رمز عبور را اعتبارسنجی کنید.

آیا یک برنامه می‌تواند متادیتا را بدون رمز عبور باز کردن بخواند؟

بله، اما فقط وقتی که ارائه با تنظیم encrypt_document_properties روی False رمزگذاری شده باشد. برنامه سپس باید از حالت بارگذاری فقط‑ویژگی‑های‑سند توصیف‌شده در Manage Presentation Properties استفاده کند.

آیا گردش‌های کاری بررسی رمز عبور برای هر دو PPT و PPTX پشتیبانی می‌شوند؟

بله. شناسایی و اعتبارسنجی رمز عبور بر پایه مسیر فایل و جریان برای ارائه‌های PPT و PPTX به‌یک‌دست رفتار می‌کنند.