Pythonでプレゼンテーションをパスワード保護

概要

オープニング パスワードはプレゼンテーションを暗号化します。正しいパスワードが必要で、プレゼンテーションのコンテンツを読み込み表示できるため、この保護は機密性を提供します。

オープニング パスワードは書き込み保護パスワードとは異なります。書き込み保護は変更を制限しますが、コンテンツを暗号化したりプレゼンテーションの読み込みを防止したりはしません。プレゼンテーションの変更用パスワードを管理するには、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)

暗号化されたプレゼンテーションの読み込み

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. 保護を適用し、結果のファイルをダウンロードします。

よくある質問

オープニング パスワードと書き込み保護パスワードの違いは何ですか?

オープニング パスワードはプレゼンテーションを暗号化し、コンテンツの読み込みに必要です。書き込み保護パスワードはコンテンツを暗号化せずに変更を制限します。

すべてのスライドを読み込まずにオープニング パスワードを検証できますか?

はい。プレゼンテーション情報を取得し、オープニング パスワード保護があるか確認し、完全なプレゼンテーション インスタンスを作成する前にパスワードを検証します。

パスワード検証のワークフローは PPT と PPTX の両方に対応していますか?

はい。ファイル パスとストリームベースのパスワード検出および検証は、PPT と PPTX のプレゼンテーションで同様に動作します。