使用 C++ 保护 PowerPoint 文件

Microsoft PowerPoint 是一款功能强大且功能丰富的软件,可让您创建精美的幻灯片以在会议和讨论中使用。您可能会发现自己的演示文稿包含您想要保护的机密信息。在这种情况下,使用密码保护演示文件可能会很有帮助。另一方面,如果您想将演示文稿标记为最终并且不希望修改其内容,您可以对演示文稿文件进行数字签名。只要签名有效,您就可以确信演示文件没有被更改。鉴于此,本文将教您如何使用 C++ 使用密码或数字签名保护 PowerPoint 演示文稿。

用于保护 PowerPoint 文件的 C++ API

Aspose.Slides for C++ 是一个功能丰富的 C++ 库,允许您创建、读取和修改 PowerPoint 文件。此外,API 支持使用密码和数字签名保护 PowerPoint 文件。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。

PM> Install-Package Aspose.Slides.Cpp

使用密码保护 PowerPoint 文件

以下是使用密码保护 PowerPoint 演示文稿的步骤。

以下是使用 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 演示文稿的步骤。

以下是使用 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 文件的数字签名的步骤。

以下是使用 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。如有任何问题,请随时在 免费支持论坛 上与我们联系。

也可以看看