Я реализовал класс для шифрования PDF-файлов с использованием .NET framework, как описано в примере here. Он использовал алгоритм AESManaged
для шифрования.Шифрование PDF с использованием .NET framework
Этот метод работает отлично, и я смог зашифровать документ. Но моя проблема в том, что я не смог открыть этот файл, используя любой просмотрщик PDF. По моим сведениям, с помощью любого PDF-редактора, совместимого с AES, мы должны иметь возможность открыть PDF после предоставления ключа, используемого для шифрования документа.
Я пробовал с Adobe 11.0.02, Preview 6.0.1, PDFView 0.14.3, Skim 1.4.3 и Google Chrome. Но каждый из них обнаруживает, что файлы повреждены. Может кто-нибудь сказать мне, что случилось?
Я добавил код ниже:
using (AesManaged aesAlg = new AesManaged())
{
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for encryption.
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(plainText);
}
encrypted = msEncrypt.ToArray();
}
}
}
ошибка в коде? –
Я так не думаю. Я сделал то же самое, что и в примере. См. Обновленный вопрос – nath
(Альтернатива - ошибки во всех зрителях, что очень * сомнительно. Также это может быть не проблема с шифрованием, а с другой обработкой данных. Например, есть нешифрованные заголовки или кадрирование, используемое с зашифрованными PDF-файлами?) – user2246674