我實現了一個類來使用.NET框架加密PDF,如示例here中所述。它使用AESManaged
算法來進行加密。使用.NET框架加密PDF
該方法工作完美,我能夠加密文件。但我的問題是我無法使用任何PDF查看器打開該文件。據我所知,使用任何AES兼容的PDF閱讀器,我們應該能夠在提供用於加密文檔的密鑰後打開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();
}
}
}
錯誤在你的代碼? – 2013-04-26 05:18:23
我不這麼認爲。我採用了與例子中提到的完全相同的方式。查看更新後的問題 – nath 2013-04-26 05:28:39
(另一種方法是在所有查看器中出現錯誤,這是非常可疑的問題,也可能不是加密問題,而是數據的其他處理,例如,是否存在未加密的頭文件或成幀與加密的PDF一起使用?) – user2246674 2013-04-26 06:22:15