数字签名 是一种众所周知且常用的保护数字文档的方法。它使验证文档中内容的真实性变得更加容易。因此,您可以识别是否有人试图篡改文档。 MS PowerPoint 还允许您使用数字签名对 PPTPPTX 演示文稿进行签名。为了以编程方式自动执行此功能,本文介绍了如何在 Python 中向 PowerPoint PPT 文件添加数字签名。

Python 库对 PowerPoint PPT 进行数字签名

要在 PowerPoint 演示文稿中添加数字签名,我们将使用 Aspose.Slides for Python via .NET。它是一个强大的 Python 库,允许您创建和操作 PowerPoint 演示文稿,而无需编写复杂的代码。您可以使用以下 pip 命令从 PyPI 安装库。

> pip install aspose.slides 

在 Python 中为 PPT 添加数字签名

要使用数字签名签署文档,您首先需要从称为证书颁发机构的授权组织/个人获取证书。此证书用于唯一标识拥有它的人。

获得数字证书后,您可以按照以下步骤在 Python 中将数字签名添加到 PowerPoint PPT。

以下代码示例展示了如何在 Python 中向 PowerPoint PPT 添加数字签名。

import aspose.slides as slides

# 加载演示文稿
with slides.Presentation("presentation.pptx") as pres:
    # 使用 PFX 文件和 PFX 密码创建 DigitalSignature 对象 
    signature = slides.DigitalSignature("certificate.pfx", "password")

    # 评论新的数字签名
    signature.comments = "Signing with Aspose.Slides"

    # 向演示文稿添加数字签名
    pres.digital_signatures.add(signature)

    # 保存演示文稿
    pres.save("SignedPPT.pptx", slides.export.SaveFormat.PPTX)

在 Python 中验证数字签名的 PPT

Aspose.Slides 还允许您验证数字签名的 PPT 是否被修改。以下是在 Python 中验证 PowerPoint 演示文稿中的数字签名的步骤。

  • 首先,使用Presentation类打开PPT/PPTX。
  • 然后,检查 PPT 是否经过数字签名。
  • 对于 Presentation.digitalsignatures 集合中的每个数字签名,执行以下步骤。
    • 使用 DigitalSignature.isvalid 验证签名。
    • 如果它返回 false,则表示会被修改,否则不会。

以下代码示例展示了如何在 Python 中验证 PowerPoint PPT 中的数字签名。

import aspose.slides as slides

# 加载演示文稿
with slides.Presentation("presentation.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 original, all signatures are valid.")
        else:
            print("Presentation has been modified.")

获得免费许可证

您可以获得 免费临时许可证 以通过 .NET 使用 Aspose.Slides for Python,而不受评估限制。

结论

在本文中,您学习了如何在 Python 中为 PowerPoint PPT 或 PPTX 文件添加数字签名。此外,您已经了解了如何验证数字签名以检查演示文稿是否被修改。您可以使用 documentation 探索 Aspose.Slides for Python 的其他功能。此外,您可以在我们的 论坛 上提问。

也可以看看