Criptografar arquivos PDF

A criptografia é uma abordagem famosa e confiável para proteger o conteúdo de documentos PDF. Quando um documento é criptografado, seu conteúdo se torna ilegível, e somente usuários autorizados podem descriptografar o documento para obter acesso ao conteúdo. Quando você protege documentos com uma senha, as pessoas que inserem a senha correta podem acessar o arquivo ou pasta. Um método de segurança mais forte é a criptografia, com tipos comuns sendo a chave de 128 bits ou a criptografia AES de 256 bits. Observe que a criptografia transforma o conteúdo do documento em texto cifrado ilegível. Para descriptografar o documento, os usuários autorizados precisam de uma chave, que normalmente é uma senha ou um certificado digital. Neste artigo, discutiremos os detalhes sobre como criptografar e descriptografar arquivos PDF usando o Java Cloud SDK.

Neste blog, discutiremos as etapas e os detalhes pertinentes à criptografia e descriptografia de documentos PDF usando a API REST Java.

API REST Java

Aspose.PDF Cloud SDK para Java é um wrapper em torno do Aspose.PDF Cloud que permite que programadores Java aproveitem ao máximo os recursos oferecidos atualmente em nossa API de nuvem. Então, dentro do seu código Java, você obtém os recursos para criar, editar e transformar arquivos PDF em vários Formatos de documentos suportados.

Instalação

Para usar o SDK, o primeiro passo é instalá-lo no seu sistema. O Cloud SDK está disponível para download no Maven e GitHub. Agora adicione os seguintes detalhes no seu arquivo pom.xml para baixar e usar Aspose.Pdf.jar no projeto de build do Maven.

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

Também recomendamos que você visite o seguinte link para obter informações detalhadas sobre Como instalar os SDKs do Aspose.Cloud.

Assinatura gratuita do Cloud Dashboard

O Aspose.PDF Cloud SDK para Java é um Cloud SDK gratuito de código aberto para processamento de arquivos PDF. Quando mencionamos gratuito, significa que o código-fonte completo do SDK está disponível para download no repositório GitHub. Então você pode modificar seu código conforme suas necessidades. Mas, para garantir a confidencialidade e integridade dos dados, as Cloud APIs são acessíveis apenas a pessoas autorizadas e elas acessam apenas seu armazenamento em nuvem específico.

Portanto, primeiro você precisa visitar Aspose.Cloud dashboard e se você tiver uma conta GitHub ou Google, basta se inscrever. Caso contrário, clique no botão Create a new Account e forneça as informações necessárias.

Criptografar arquivo PDF usando o comando cURL

Os comandos cURL são uma das maneiras mais fáceis e legais de acessar as APIs REST. Então, vamos falar sobre adicionar as diferentes anotações usando os comandos cURL. Então, para usar os comandos cURL, precisamos primeiro gerar um token de autorização de acesso JWT. O JSON Web Token (JWT) é baseado nos detalhes do Client ID e do Client Secret, que são chaves exclusivas geradas para cada cliente. Então, faça login no painel do Aspose.Cloud usando suas credenciais e expanda a seção Applications do painel e role para baixo em direção à seção Client Credentials para ver os detalhes do Client ID e do Client Secret.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Antes de prosseguir, observe que quando criptografamos os arquivos PDF, definimos senhas de usuário e proprietário.

Senha para abrir documento

Uma senha de abertura de documento (também conhecida como senha de usuário) exige que o usuário digite uma senha para abrir o PDF.

Senha de permissões

A senha de permissão (também conhecida como senha mestre/proprietária) é necessária para alterar as configurações de permissão. Ao usar a senha de permissões, você pode restringir a impressão, edição e cópia de conteúdo no PDF. Essa senha é necessária para alterar as restrições que você já aplicou.

Se o PDF estiver protegido com ambos os tipos de senha, ele poderá ser aberto com qualquer uma delas.

Observe que a API aceita as senhas de proprietário e usuário no formato codificado em Base64. No comando cURL a seguir, a ownerPassword (b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm) e a userPassword (dXNlciAkXlBhc3N3b3JkISY=) são especificadas.

curl -v "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/encrypt?userPassword=dXNlciAkXlBhc3N3b3JkISY%3D&ownerPassword=b3duZXJcLy8%2FICQxMl5QYXNzd29yZCEm&cryptoAlgorithm=AESx128&permissionsFlags=AssembleDocument&usePdf20=false" \
-X POST \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Criptografar arquivo PDF usando Java

Não adicionamos simplesmente proteção por senha aos arquivos PDF, mas um método de segurança mais forte é a criptografia. A API REST Java permite que você selecione um dos seguintes métodos de criptografia, que transformam o conteúdo do documento em texto cifrado ilegível.

| Nome | Descrição |

| ———— | ———————– |

| RC4x40 | RC4 com comprimento de chave 40. |

| RC4x128 | RC4 com comprimento de chave 128. |

| AESx128 | AES com comprimento de chave 128. |

| AESx256 | AES com comprimento de chave 256. |

Use o seguinte trecho de código para adicionar userPassword e ownerPassword aos arquivos PDF já disponíveis no armazenamento em nuvem.

  • O primeiro passo é criar uma instância PdfApi passando os detalhes clientID e clientSecret como argumentos.
  • Carregue o arquivo PDF no armazenamento em nuvem usando o método uploadFile(…) do PdfApi.
  • Por fim, chame o método postEncryptDocumentInStorage(…) do PdfApi, que recebe o nome do arquivo PDF de entrada, as senhas do usuário e do proprietário e um valor da enumeração CryptoAlgorithm como argumentos.
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// instância createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF de entrada
String name = "PdfWithTable.pdf";	        
			   
// Carregue o arquivo do sistema local
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// carregue o arquivo para o armazenamento em nuvem
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// senhas de usuário e proprietário codificadas em base64
String userPasswordBase64encoded = "dXNlciAkXlBhc3N3b3JkISY="; //user $^Password!&
String ownerPasswordBase64encoded = "b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm"; //owner\//? $12^Password!&

// chamar API para criptografar PDF
AsposeResponse response  = pdfApi.postEncryptDocumentInStorage(name, userPasswordBase64encoded, ownerPasswordBase64encoded,
			                CryptoAlgorithm.AESX128.getValue(), null, null, null, null);
// Imprimir resposta da API no console
System.out.println(response);

Quando você tentar abrir o arquivo resultante, um prompt para fornecer detalhes de senha aparecerá.

Descriptografar arquivo PDF usando o comando cURL

O comando cURL também pode ser usado para descriptografar um documento PDF codificado existente. No exemplo dado abaixo, a API PostDecryptDocumentInStorage é acessada, o que leva os detalhes da senha como um argumento.

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/decrypt?password=dXNlciAkXlBhc3N3b3JkISY%3D" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Descriptografar arquivo PDF usando Java

Para descriptografar os arquivos PDF usando Java, siga as etapas explicadas abaixo

  • Crie uma instância PdfApi passando clientSecret e clientID como argumentos.
  • Crie um objeto de string definindo o arquivo PDF de entrada.
  • Carregue o arquivo no armazenamento em nuvem usando o método uploadFile(….) da classe PdfApi.
  • Por fim, chame o método postDecryptDocumentInStorage(…) fornecendo o nome do arquivo PDF de entrada e a senha de descriptografia como argumentos.
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// instância createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF de entrada
String name = "PdfWithTable.pdf";	        
			   
// Carregue o arquivo do sistema local
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// carregue o arquivo para o armazenamento em nuvem
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// senhas de usuário e proprietário codificadas em base64
String userPasswordBase64encoded = "dXNlciAkXlBhc3N3b3JkISY="; //user $^Password!&

// chamar API para descriptografar PDF
AsposeResponse response  = pdfApi.postDecryptDocumentInStorage(name, userPasswordBase64encoded, null,null);
// Imprimir resposta da API no console
System.out.println(response);

O arquivo descriptografado usado no exemplo acima pode ser baixado de PdfWithTable-Encrypted.pdf.

Conclusão

Neste blog, discutimos as etapas sobre como criptografar e descriptografar arquivos PDF usando a API REST Java. Você pode criptografar facilmente seus arquivos de origem e compartilhá-los pela Internet sem medo de roubo de dados ou uso indevido de documentos. Além dos recursos de criptografia, o Aspose.PDF Cloud SDK para Java fornece uma infinidade de recursos relacionados ao formato PDF. Você pode considerar visitar o link a seguir para obter mais detalhes sobre recursos do Aspose.PDF Cloud.

Artigos relacionados

Também recomendamos que você leia o seguinte blog para obter informações sobre