cifrar descifrar pdf C++

El cifrado de PDF es el proceso de proteger el documento mediante una contraseña, así como algunos algoritmos criptográficos, incluidos AES o RC4. También puede establecer diferentes privilegios para limitar el acceso del usuario a diferentes operaciones. Por ejemplo, solo puede permitir la impresión, la adición de anotaciones, el llenado de formularios, etc. En este artículo, aprenderá a cifrar archivos PDF con C++. Además, este artículo también cubre cómo configurar diferentes privilegios y descifrar archivos PDF protegidos con contraseña usando C++.

API de C++ para cifrar o descifrar archivos PDF

Aspose.PDF for C++ es una API nativa de C++ que le permite crear, leer y manipular documentos PDF. Además, también le permite cifrar archivos PDF con contraseñas y descifrar los PDF cifrados con unas pocas líneas de código. Puede descargar la API desde la sección descargas o instalarla mediante NuGet.

Cifrar archivos PDF usando C++

Los siguientes son los pasos para cifrar un archivo PDF usando Aspose.PDF for C++.

El siguiente ejemplo de código muestra cómo cifrar un archivo PDF usando C++.

For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// Cargar un documento PDF existente
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\input.pdf");

// Way1: usar privilegios predefinidos directamente.
System::SharedPtr<Aspose::Pdf::Facades::DocumentPrivilege> privilege = Aspose::Pdf::Facades::DocumentPrivilege::get_Print();
doc->Encrypt(L"user", L"owner", privilege, CryptoAlgorithm::AESx128, false);
doc->Save(L"..\\Data\\SecurityAndSignatures\\SetPrivelegesWay1_out.pdf");

// Way2: Basado en un privilegio predefinido y cambiar algunos permisos específicos.
System::SharedPtr<Aspose::Pdf::Facades::DocumentPrivilege> privilege2 = Aspose::Pdf::Facades::DocumentPrivilege::get_AllowAll();
privilege->set_AllowPrint(false);
privilege->set_AllowModifyContents(false);
doc->Encrypt(L"user", L"owner", privilege2, CryptoAlgorithm::AESx128, false);
doc->Save(L"..\\Data\\SecurityAndSignatures\\SetPrivelegesWay2_out.pdf");

// Way3: Basado en un privilegio predefinido y cambia alguna combinación específica de permisos de Adobe Professional.
System::SharedPtr<Aspose::Pdf::Facades::DocumentPrivilege> privilege3 = Aspose::Pdf::Facades::DocumentPrivilege::get_ForbidAll();
privilege->set_ChangeAllowLevel(1);
privilege->set_PrintAllowLevel(2);
doc->Encrypt(L"user", L"owner", privilege3, CryptoAlgorithm::AESx128, false);
doc->Save(L"..\\Data\\SecurityAndSignatures\\SetPrivelegesWay3_out.pdf");

// Way4: Mezcla way2 y way3
System::SharedPtr<Aspose::Pdf::Facades::DocumentPrivilege> privilege4 = Aspose::Pdf::Facades::DocumentPrivilege::get_ForbidAll();
privilege->set_ChangeAllowLevel(1);
privilege->set_AllowPrint(true);
doc->Encrypt(L"user", L"owner", privilege4, CryptoAlgorithm::AESx128, false);
doc->Save(L"..\\Data\\SecurityAndSignatures\\SetPrivelegesWay4_out.pdf");

Descifrar archivos PDF usando C++

Los siguientes son los pasos para descifrar un archivo PDF usando Aspose.PDF for C++.

El siguiente ejemplo de código muestra cómo descifrar un PDF usando C++.

For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// Cargar un documento PDF existente
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\Decrypt.pdf", L"password");
// Descifrar PDF
doc->Decrypt();
// Guardar el documento actualizado
doc->Save(L"..\\Data\\SecurityAndSignatures\\Decrypt_out.pdf");

Conclusión

En este artículo, ha aprendido a cifrar o descifrar archivos PDF utilizando C++. El ejemplo de código también ha mostrado cómo establecer diferentes privilegios al cifrar un archivo PDF. Puede explorar más sobre la API de PDF de C++ usando documentación.

Ver también