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

  • 使用密码保护PowerPoint文件
  • 用数字签名保护PowerPoint文件
  • 使用C ++验证经过数字签名的PowerPoint文件

Aspose.Slides for C ++是功能丰富的C ++库,可用于创建,读取和修改PowerPoint文件。此外,API支持使用密码和数字签名保护PowerPoint文件。

>>你可以获取Aspose.Slides 最新版测试体验。


使用密码保护PowerPoint文件

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

  • 首先,使用Presentation 类加载PowerPoint文件 。
  • 使用Presentation-> get_ProtectionManager()-> Encrypt(System :: String encryptionPassword)方法用密码对演示文稿进行加密。
  • 最后,使用Presentation->Save (System::String name, Export::SaveFormat format)方法保存受保护的演示文稿。

以下是使用C ++用密码保护PowerPoint演示文稿的示例代码。

// File paths
const String sourceFilePath = u"SourceDirectory\\SamplePresentation.pptx";
const String outputFilePath = u"OutputDirectory\\protected-presentation.pptx";

// Load the presentation file
SharedPtrpresentation = MakeObject(sourceFilePath);

// Protect presentation with password
presentation->get_ProtectionManager()->Encrypt(u"password");

// Save the presentation
presentation->Save(outputFilePath, SaveFormat::Pptx);

用数字签名保护PowerPoint文件

以下是使用数字签名保护PowerPoint演示文稿的步骤。

  • 首先,使用Presentation 类加载PowerPoint演示 文稿。
  • 使用证书文件和密码创建DigitalSignature类的对象。
  • 使用DigitalSignature-> set_Comments(System :: String值)方法添加注释。
  • 使用Presentation-> get_DigitalSignatures()-> Add(System :: SharedPtrdigitalSignature)方法将数字签名添加到演示文稿中。
  • 最后,使用Presentation-> Save(系统::字符串名称,导出:: SaveFormat格式) 方法保存签名的演示 文稿。

以下是使用C ++使用数字签名保护PowerPoint文件的示例代码。

// File paths
const String sourceFilePath = u"SourceDirectory\\SamplePresentation.pptx";
const String signatureFilePath = u"SourceDirectory\\testsignature1.pfx";
const String outputFilePath = u"OutputDirectory\\digital-signature-presentation.pptx";

// Load the presentation file
SharedPtrpresentation = MakeObject(sourceFilePath);

// Create DigitalSignature object with PFX file and password
SharedPtrsignature = MakeObject(signatureFilePath, u"testpass1");

// Add comment
signature->set_Comments(u"Test Comments");

// Add digital signature to presentation
presentation->get_DigitalSignatures()->Add(signature);

// Save the presentation
presentation->Save(outputFilePath, SaveFormat::Pptx);

使用C ++验证经过数字签名的PowerPoint文件

Aspose.Slides for C ++ API还为您提供了验证经过数字签名的PowerPoint文件的功能。以下是验证PowerPoint文件的数字签名的步骤。

  • 使用Presentation 类加载PowerPoint演示 文稿。
  • 使用Presentation-> get_DigitalSignatures()-> get_Count()方法检查数字签名是否存在。
  • 如果演示文稿包含数字签名,请遍历它们。
  • 在循环中,使用Presentation-> get_DigitalSignatures()-> idx_get(int32_t索引)方法访问每个数字签名。
  • 使用DigitalSignature-> get_IsValid()方法检查数字签名的有效性,该方法对有效签名返回true。

以下是用于使用C ++验证PowerPoint文件的数字签名的示例代码。

// File path
const String sourceFilePath = u"SourceDirectory\\digital-signature-presentation.pptx";

// Load the presentation file
SharedPtrpresentation = MakeObject(sourceFilePath);

// Check if presentation has digital signatures
if (presentation->get_DigitalSignatures()->get_Count() > 0)
{
	bool allSignaturesAreValid = true;

	Console::WriteLine(u"Signatures used to sign the presentation: ");

	// Verify digital signatures
	for (int i = 0; i < presentation->get_DigitalSignatures()->get_Count(); i++)
	{
		SharedPtrsignature = 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.");
	}
}

如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询

04-13 05:27