criptografar descriptografar pdf C++

A criptografia de PDF é o processo de proteção do documento usando uma senha, bem como alguns algoritmos criptográficos, incluindo AES ou RC4. Você também pode definir diferentes privilégios para limitar o acesso do usuário a diferentes operações. Por exemplo, você só pode permitir imprimir, adicionar anotações, preencher formulários etc. Neste artigo, você aprenderá como criptografar arquivos PDF usando C++. Além disso, este artigo também aborda como definir diferentes privilégios e descriptografar arquivos PDF protegidos por senha usando C++.

API C++ para criptografar ou descriptografar arquivos PDF

Aspose.PDF for C++ é uma API C++ nativa que permite criar, ler e manipular documentos PDF. Além disso, também permite criptografar PDFs com senhas e descriptografar os PDFs criptografados em poucas linhas de código. Você pode baixar a API na seção downloads ou instalá-la usando NuGet.

Criptografar arquivos PDF usando C++

A seguir estão as etapas para criptografar um arquivo PDF usando Aspose.PDF para C++.

O exemplo de código a seguir mostra como criptografar um arquivo PDF usando C++.

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

// Way1: Usando privilégios predefinidos diretamente.
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: Com base em um privilégio predefinido e alterar algumas permissões específicas.
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: Com base em um privilégio predefinido e alterar algumas combinações de permissões específicas do 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: Mistura o way2 e 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");

Descriptografar arquivos PDF usando C++

A seguir estão as etapas para descriptografar um arquivo PDF usando Aspose.PDF para C++.

O exemplo de código a seguir mostra como descriptografar um PDF usando C++.

For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.Pdf-for-C
// Carregar um documento PDF existente
auto doc = MakeObject<Document>(L"..\\Data\\SecurityAndSignatures\\Decrypt.pdf", L"password");
// Descriptografar PDF
doc->Decrypt();
// Salve o documento atualizado
doc->Save(L"..\\Data\\SecurityAndSignatures\\Decrypt_out.pdf");

Conclusão

Neste artigo, você aprendeu como criptografar ou descriptografar arquivos PDF usando C++. O exemplo de código também mostrou como definir diferentes privilégios ao criptografar um arquivo PDF. Você pode explorar mais sobre a API de PDF C++ usando documentação.

Veja também