数字签名 是一种众所周知且常用的保护数字文档的方法。它使验证文档中内容的真实性变得更加容易。因此,您可以识别是否有人试图篡改文档。 MS PowerPoint 还允许您使用数字签名对 PPT 或 PPTX 演示文稿进行签名。为了以编程方式自动执行此功能,本文介绍了如何在 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。
- 首先,使用Presentation类打开PPT/PPTX。
- 然后,通过提供文件的路径和密码,使用 DigitalSignature 类加载数字签名。
- 使用 DigitalSignature.comments 属性添加评论。
- 使用 Presentation.digitalsignatures.add(DigitalSignature) 方法向演示文稿添加数字签名。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。
以下代码示例展示了如何在 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 的其他功能。此外,您可以在我们的 论坛 上提问。