Crittografare un documento

La crittografia è il processo che traduce il testo leggibile in sequenze di byte prive di significato in modo che possa essere letto solo dalla persona che possiede la chiave di decrittazione o il codice segreto. Questo processo svolge un ruolo importante nella protezione dei tuoi contenuti. Aiuta a codificare il contenuto, verificare l’origine di un documento, dimostrare che il contenuto non è stato modificato dopo l’invio e garantire che i dati del documento siano al sicuro.

Questo articolo spiega come Aspose.Words ti consente di crittografare un documento e come verificare se un documento è crittografato o meno.

Crittografa con password

Per crittografare un documento, utilizzare la proprietà Password per fornire una password che funzioni come chiave di crittografia. Ciò modificherà il contenuto del documento e lo renderà illeggibile. Il documento crittografato richiederà l’immissione di questa password prima di poter essere aperto.

La tabella seguente elenca i formati e gli algoritmi di crittografia supportati da Aspose.Words:

Formato Crittografia supportata durante il caricamento Crittografia supportata durante il salvataggio
DOC, DOT Crittografia XORCrittografia RC4 a 40 bitCryptoAPI Crittografia RC4 Crittografia RC4 (40 bit)
DOCX, DOTX, DOCM, DOTM, FlatOPC, FlatOpcTemplate, FlatOpcMacroEnabled, FlatOpcTemplateMacroEnabled Crittografia standard ECMA-376Crittografia agile ECMA-376 Crittografia standard ECMA-376 (AES128 + SHA1)
ODT, OTT Crittografia ODF (Blowfish/AES) Crittografia ODF (AES256 + SHA256)
PDF - Crittografia RC4 (40/128 bit)

Il seguente esempio di codice mostra come crittografare un documento con una password:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Hello world!");
DocSaveOptions saveOptions = new DocSaveOptions { Password = "password" };
doc.Save(ArtifactsDir + "WorkingWithDocSaveOptions.EncryptDocumentWithPassword.docx", saveOptions);

Controlla se un documento è crittografato

In alcuni casi, potresti avere un documento illeggibile e vuoi essere sicuro che sia crittografato e non danneggiato o compresso.

Per rilevare se un documento è crittografato e se è richiesta una password, è possibile utilizzare la proprietà IsEncrypted della classe FileFormatInfo. Questa proprietà consentirà inoltre di eseguire alcune azioni prima di caricare un documento, ad esempio informare un utente di fornire una password.

Il seguente esempio di codice mostra come rilevare la crittografia del documento:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
FileFormatInfo info = FileFormatUtil.DetectFileFormat(MyDir + "Encrypted.docx");
Console.WriteLine(info.IsEncrypted);

Apri un documento con o senza password

Dopo esserci assicurati che un documento sia crittografato, possiamo provare ad aprire questo documento senza password, il che dovrebbe portare a un’eccezione.

Il seguente esempio di codice mostra come provare ad aprire un documento crittografato senza password:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
// We will not be able to open this document with Microsoft Word or
// Aspose.Words without providing the correct password.
Assert.Throws<IncorrectPasswordException>(() =>
new Document(MyDir + "Encrypted.docx"));

Dopo aver visto che un documento crittografato non può essere aperto senza password, possiamo provare ad aprirlo inserendo la password.

Il seguente esempio di codice mostra come provare ad aprire un documento crittografato con una password:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Encrypted.docx", new LoadOptions("docPassword"));
doc.Save(ArtifactsDir + "WorkingWithLoadOptions.LoadSaveEncryptedDocument.odt", new OdtSaveOptions("newPassword"));