Criptografar um documento
A criptografia é o processo que traduz texto legível em sequências de bytes sem sentido, de modo que só pode ser lido pela pessoa que possui a chave de descriptografia ou o código secreto. Este processo desempenha um papel importante na segurança do seu conteúdo. Ajuda a codificar o conteúdo, a verificar a origem de um documento, a provar que o conteúdo não foi modificado após o seu envio e a garantir que os dados do documento são seguros.
Este artigo explica como Aspose.Words permite criptografar um documento e como verificar se um documento tem criptografia ou não.
Criptografar com senha
Para criptografar um documento, use a propriedade Password para fornecer uma senha que funcione como uma chave de criptografia. Isso modificará o conteúdo do seu documento e o tornará ilegível. O documento criptografado exigirá que essa senha seja inserida antes de poder ser aberta.
A tabela abaixo lista os formatos e algoritmos de encriptação suportados por Aspose.Words:
Formato | Criptografia suportada durante o carregamento | Criptografia suportada ao salvar |
---|---|---|
DOC, DOT | XOR encriptação40-bit RC4 EncryptionCryptoAPI RC4 encriptação | RC4 encriptação (40 bits) |
DOCX, DOTX, DOCM, DOTM, FlatOPC, FlatOpcTemplate, FlatOpcMacroEnabled, FlatOpcTemplateMacroEnabled | ECMA-376 Padrão EncryptionECMA-376 Encriptação Ágil | ECMA-376 Encriptação Padrão (AES128 + SHA1) |
ODT, OTT | ODF Encriptação (Blowfish / AES) | ODF encriptação (AES256 + SHA256) |
RC4 encriptação (40/128 bits) |
O exemplo de código a seguir mostra como criptografar um documento com uma senha:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.write("Hello world!"); | |
DocSaveOptions saveOptions = new DocSaveOptions(); | |
saveOptions.setPassword("password"); | |
doc.save(getArtifactsDir() + "WorkingWithDocSaveOptions.EncryptDocumentWithPassword.docx", saveOptions); |
Verificar se um documento está encriptado
Em alguns casos, você pode ter um documento ilegível e quer ter certeza de que o documento está criptografado e não corrompido ou compactado.
Para detectar se um documento está encriptado e se é necessária uma palavra-passe, pode utilizar a propriedade IsEncrypted da classe FileFormatInfo. Essa propriedade também permitirá que você execute alguma ação antes de carregar um documento, por exemplo, informando um usuário para fornecer uma senha.
O exemplo de código a seguir mostra como detectar a criptografia do documento:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
FileFormatInfo info = FileFormatUtil.detectFileFormat(getMyDir() + "Encrypted.docx"); | |
System.out.println(info.isEncrypted()); |
Abrir um documento com ou sem palavra-passe
Quando tivermos a certeza de que um documento está encriptado, podemos tentar abri-lo sem uma palavra-passe, o que deverá dar origem a uma excepção.
O exemplo de código a seguir mostra como tentar abrir um documento criptografado sem uma senha:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
// We will not be able to open this document with Microsoft Word or | |
// Aspose.Words without providing the correct password. | |
Document doc = new Document(getMyDir() + "Encrypted.docx"); |
Depois de termos visto que um documento criptografado não pode ser aberto sem uma senha, podemos tentar abri-lo digitando a senha.
O exemplo de código a seguir mostra como tentar abrir um documento criptografado com uma senha:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Encrypted.docx", new LoadOptions("docPassword")); | |
doc.save(getArtifactsDir() + "WorkingWithLoadOptions.LoadAndSaveEncryptedOdt.odt", new OdtSaveOptions("newPassword")); |