Een document versleutelen

Encryptie is het proces dat leesbare tekst vertaalt naar betekenisloze sequenties van bytes zodat het alleen gelezen kan worden door de persoon die de decryptiesleutel of de geheime code heeft. Dit proces speelt een belangrijke rol bij het beveiligen van uw inhoud. Het helpt om de inhoud te coderen, de oorsprong van een document te verifiëren, te bewijzen dat de inhoud niet is gewijzigd nadat het is verzonden, en ervoor te zorgen dat de gegevens van het document veilig zijn.

Dit artikel legt uit hoe Aspose.Words kunt u een document te versleutelen en hoe te controleren of een document versleuteling heeft of niet.

Versleutelen met wachtwoord

Om een document te versleutelen, gebruik de wachtwoord eigenschap om een wachtwoord dat functioneert als een encryptiesleutel te verstrekken. Dit zal de inhoud van uw document wijzigen en onleesbaar maken. Het versleutelde document vereist dat dit wachtwoord ingevoerd wordt voordat het geopend kan worden.

De tabel hieronder toont de formaten en encryptie-algoritmen ondersteund door Aspose.Words:

Formaat Ondersteunde versleuteling tijdens laden Ondersteunde versleuteling tijdens opslaan
DOC, DOT XOR encryptie40-bit RC4 EncryptieCryptoAPI RC4-versleuteling RC4-versleuteling (40-bits)
DOCX, DOTX, DOCM, DOTM, FlatOPC, FlatOpcTemplate, FlatOpcMacroEnabled, FlatOpcTemplateMacroEnabled ECMA-376 Standard EncryptionECMA-376 Agile Encryption ECMA-376 Standaardencryptie (AES128 + SHA1)
ODT, OTT ODF-versleuteling (Blowfish/AES) ODF-versleuteling (AES256 + SHA256)
PDF RC4-versleuteling (40/128 bit)

Het volgende codevoorbeeld laat zien hoe een document met een wachtwoord te versleutelen:

import aspose.words as aw

# Create a document.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.write("Hello world!")

# DocSaveOptions only applies to Doc and Dot save formats.
options = aw.saving.DocSaveOptions(aw.SaveFormat.DOC);

// Set a password with which the document will be encrypted, and which will be required to open it.
options.password = "MyPassword"
doc.save(artifacts_dir + "DocSaveOptions.SaveAsDoc.doc", options)

Controleren of een document versleuteld is

In sommige gevallen kunt u een onleesbaar document hebben en wilt u er zeker van zijn dat het document is gecodeerd en niet beschadigd of gecomprimeerd.

Om te detecteren of een document is gecodeerd en als een wachtwoord is vereist, kunt u de is_encrypted eigendom van de FileFormatInfo Klasse. Deze eigenschap zal u ook toestaan om enige actie uit te voeren voordat u een document laadt, bijvoorbeeld een gebruiker informeren om een wachtwoord te verstrekken.

Het volgende voorbeeld van code laat zien hoe u de documentversleuteling kunt detecteren:

import aspose.words as aw

# Create a document.
doc = aw.Document()
saveOptions = aw.saving.OdtSaveOptions(aw.SaveFormat.ODT)
saveOptions.password = "MyPassword"

doc.Save(artifacts_dir + "File.DetectDocumentEncryption.odt", saveOptions)
            
# Create a `FileFormatInfo` object for this document.
info = aw.FileFormatUtil.detect_file_format(artifacts_dir + "File.DetectDocumentEncryption.odt")

# Verify the encryption status of our document.
self.assertTrue(info.is_encrypted)

Een document openen met of zonder wachtwoord

Wanneer we ervoor hebben gezorgd dat een document versleuteld wordt, kunnen we proberen dit document zonder wachtwoord te openen, wat tot een uitzondering zou moeten leiden.

Het volgende voorbeeld van code laat zien hoe je een versleuteld document kunt openen zonder wachtwoord:

import aspose.words as aw

# Create a document.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.write("Hello world!")

# OoxmlSaveOptions only applies to Docx, Docm, Dotx, Dotm, or FlatOpc formats.
options = aw.saving.OoxmlSaveOptions(aw.SaveFormat.DOCX)

# Set a password with which the document will be encrypted, and which will be required to open it.
options.password = "MyPassword"
doc.Save(artifacts_dir + "OoxmlSaveOptions.SaveAsDocx.docx", options)

# We will not be able to open this document with Microsoft Word or
# Aspose.Words without providing the correct password.
# The following line will throw an exception.
doc = aw.Document(artifacts_dir + "OoxmlSaveOptions.Password.docx"))

Nadat we hebben gezien dat een gecodeerd document niet kan worden geopend zonder wachtwoord, kunnen we proberen het te openen door het wachtwoord in te voeren.

Het volgende voorbeeld van code laat zien hoe u een gecodeerd document met een wachtwoord kunt openen:

import aspose.words as aw

# Create a document.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.write("Hello world!")

# OoxmlSaveOptions only applies to Docx, Docm, Dotx, Dotm, or FlatOpc formats.
options = aw.saving.OoxmlSaveOptions(aw.SaveFormat.DOCX)

# Set a password with which the document will be encrypted, and which will be required to open it.
options.password = "MyPassword"
doc.Save(artifacts_dir + "OoxmlSaveOptions.SaveAsDocx.docx", options)

# Open the encrypted document by passing the correct password in a `LoadOptions` object.
doc = aw.Document(artifacts_dir + "OoxmlSaveOptions.Password.docx", aw.loading.LoadOptions("MyPassword"))

self.assertEqual("Hello world!", doc.get_text().strip())