Зашифровать документ
Шифрование - это процесс, который преобразует читаемый текст в бессмысленные последовательности байтов, чтобы его мог прочитать только тот, у кого есть ключ дешифрования или секретный код. Этот процесс играет важную роль в обеспечении безопасности вашего контента. Это помогает закодировать содержимое, проверить происхождение документа, доказать, что содержимое не было изменено после его отправки, и обеспечить безопасность данных из документа.
В этой статье объясняется, как Aspose.Words позволяет зашифровать документ и как проверить, зашифрован документ или нет.
Шифрование с помощью пароля
Чтобы зашифровать документ, используйте свойство Password для ввода пароля, который выполняет функцию ключа шифрования. Это изменит содержимое вашего документа и сделает его нечитаемым. Для открытия зашифрованного документа потребуется ввести этот пароль.
В таблице ниже перечислены форматы и алгоритмы шифрования, поддерживаемые Aspose.Words:
Формат | Поддерживаемое шифрование при загрузке | Поддерживаемое шифрование при сохранении |
---|---|---|
DOC, DOT | XOR-шифрование 40-битное RC4-шифрование с использованием CryptoAPI RC4-шифрования | Шифрование RC4 (40-битное) |
DOCX, DOTX, DOCM, DOTM, FlatOPC, FlatOpcTemplate, FlatOpcMacroEnabled, FlatOpcTemplateMacroEnabled Плоский макросъемочный | Стандартное шифрование ECMA-376 Гибкое шифрование ECMA-376 | Стандартное шифрование ECMA-376 (AES128 + SHA1) |
ODT, OTT | Шифрование ODF (Blowfish/AES) | Шифрование ODF (AES256 + SHA256) |
Шифрование RC4 (40/128 бит) |
В следующем примере кода показано, как зашифровать документ с помощью пароля:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
auto doc = MakeObject<Document>(); | |
auto builder = MakeObject<DocumentBuilder>(doc); | |
builder->Write(u"Hello world!"); | |
auto saveOptions = MakeObject<DocSaveOptions>(); | |
saveOptions->set_Password(u"password"); | |
doc->Save(ArtifactsDir + u"WorkingWithDocSaveOptions.EncryptDocumentWithPassword.docx", saveOptions); |
Проверьте, Зашифрован Ли Документ
В некоторых случаях у вас может оказаться нечитаемый документ, и вы хотите быть уверены, что он зашифрован, не поврежден и не сжат.
Чтобы определить, зашифрован ли документ и требуется ли пароль, вы можете использовать свойство IsEncrypted класса FileFormatInfo. Это свойство также позволит вам выполнить некоторые действия перед загрузкой документа, например, попросить пользователя ввести пароль.
В следующем примере кода показано, как обнаружить шифрование документа:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
SharedPtr<FileFormatInfo> info = FileFormatUtil::DetectFileFormat(MyDir + u"Encrypted.docx"); | |
std::cout << System::Convert::ToString(info->get_IsEncrypted()) << std::endl; |
Откройте документ с паролем или без него
Когда мы убедимся, что документ зашифрован, мы можем попытаться открыть этот документ без пароля, что должно привести к исключению.
В следующем примере кода показано, как попытаться открыть зашифрованный документ без пароля:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
// We will not be able to open this document with Microsoft Word or | |
// Aspose.Words without providing the correct password. | |
auto doc = MakeObject<Document>(MyDir + u"Encrypted.docx"); |
После того, как мы убедились, что зашифрованный документ не может быть открыт без пароля, мы можем попытаться открыть его, введя пароль.
В следующем примере кода показано, как попытаться открыть зашифрованный документ с помощью пароля:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Encrypted.docx", MakeObject<LoadOptions>(u"docPassword")); | |
doc->Save(ArtifactsDir + u"WorkingWithLoadOptions.LoadAndSaveEncryptedOdt.odt", MakeObject<OdtSaveOptions>(u"newPassword")); |