Microsoft PowerPoint 是一款功能强大且功能丰富的软件,可让您创建精美的幻灯片以在会议和讨论中使用。您可能会发现自己的演示文稿包含您想要保护的机密信息。在这种情况下,使用密码保护演示文件可能会很有帮助。另一方面,如果您想将演示文稿标记为最终并且不希望修改其内容,您可以对演示文稿文件进行数字签名。只要签名有效,您就可以确信演示文件没有被更改。鉴于此,本文将教您如何使用 C++ 使用密码或数字签名保护 PowerPoint 演示文稿。
- 用于保护 PowerPoint 文件的 C++ API
- 使用密码保护 PowerPoint 文件
- 使用数字签名保护 PowerPoint 文件
- 使用 C++ 验证数字签名的 PowerPoint 文件
- 获得免费许可证
用于保护 PowerPoint 文件的 C++ API
Aspose.Slides for C++ 是一个功能丰富的 C++ 库,允许您创建、读取和修改 PowerPoint 文件。此外,API 支持使用密码和数字签名保护 PowerPoint 文件。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.Slides.Cpp
使用密码保护 PowerPoint 文件
以下是使用密码保护 PowerPoint 演示文稿的步骤。
- 首先,使用 Presentation 类加载 PowerPoint 文件。
- 使用 Presentation->getProtectionManager()->Encrypt (System::String encryptionPassword) 方法使用密码加密演示文稿。
- 最后,使用 Presentation->Save (System::String name, Export::SaveFormat format) 方法保存受保护的演示文稿。
以下是使用 C++ 使用密码保护 PowerPoint 演示文稿的示例代码。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\SamplePresentation.pptx";
const String outputFilePath = u"OutputDirectory\\protected-presentation.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 使用密码保护演示文稿
presentation->get_ProtectionManager()->Encrypt(u"password");
// 保存演示文稿
presentation->Save(outputFilePath, SaveFormat::Pptx);
使用数字签名保护 PowerPoint 文件
以下是使用数字签名保护 PowerPoint 演示文稿的步骤。
- 首先,使用 Presentation 类加载 PowerPoint 演示文稿。
- 使用证书文件和密码创建 DigitalSignature 类的对象。
- 使用 DigitalSignature->setComments (System::String value) 方法添加注释。
- 使用 Presentation->getDigitalSignatures()->Add (System::SharedPtr数字签名) 方法。
- 最后,使用 Presentation->Save (System::String name, Export::SaveFormat format) 方法保存签名的演示文稿。
以下是使用 C++ 使用数字签名保护 PowerPoint 文件的示例代码。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\SamplePresentation.pptx";
const String signatureFilePath = u"SourceDirectory\\testsignature1.pfx";
const String outputFilePath = u"OutputDirectory\\digital-signature-presentation.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 使用 PFX 文件和密码创建 DigitalSignature 对象
SharedPtr<DigitalSignature> signature = MakeObject<DigitalSignature>(signatureFilePath, u"testpass1");
// 添加评论
signature->set_Comments(u"Test Comments");
// 向演示文稿添加数字签名
presentation->get_DigitalSignatures()->Add(signature);
// 保存演示文稿
presentation->Save(outputFilePath, SaveFormat::Pptx);
使用 C++ 验证数字签名的 PowerPoint 文件
Aspose.Slides for C++ API 还为您提供了验证数字签名的 PowerPoint 文件的能力。以下是验证 PowerPoint 文件的数字签名的步骤。
- 使用 Presentation 类加载 PowerPoint 演示文稿。
- 使用 Presentation->getDigitalSignatures()->getCount() 方法检查是否存在数字签名。
- 如果演示文稿包含数字签名,请遍历它们。
- 在循环中,使用 Presentation->getDigitalSignatures()->idxget (int32t index) 方法访问每个数字签名。
- 使用对有效签名返回 true 的 DigitalSignature->getIsValid() 方法检查数字签名的有效性。
以下是使用 C++ 验证 PowerPoint 文件的数字签名的示例代码。
// 文件路径
const String sourceFilePath = u"SourceDirectory\\digital-signature-presentation.pptx";
// 加载演示文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 检查演示文稿是否有数字签名
if (presentation->get_DigitalSignatures()->get_Count() > 0)
{
bool allSignaturesAreValid = true;
Console::WriteLine(u"Signatures used to sign the presentation: ");
// 验证数字签名
for (int i = 0; i < presentation->get_DigitalSignatures()->get_Count(); i++)
{
SharedPtr<IDigitalSignature> signature = presentation->get_DigitalSignatures()->idx_get(i);
Console::WriteLine(System::Convert::ToString(signature->get_SignTime()) + u" -- " + (signature->get_IsValid() ? u"VALID" : u"INVALID"));
if (signature->get_IsValid() == false)
{
allSignaturesAreValid = false;
}
}
if (allSignaturesAreValid)
{
Console::WriteLine(u"Presentation is genuine, all signatures are valid.");
}
else
{
Console::WriteLine(u"Presentation has been modified since signing.");
}
}
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 使用密码和数字签名来保护 PowerPoint 演示文稿。此外,您还了解了如何通过验证演示文件的数字签名来验证其完整性。 Aspose.Slides for C++ API 具有更多功能,使处理演示文件变得轻而易举。您可以使用 官方文档 详细探索 API。如有任何问题,请随时在 免费支持论坛 上与我们联系。