0

我已经使用 iTextsharp lib 加密了一些 pdf 文件,并使用 AES 128 位和密钥长度 = 16 字节(保护阅读)。任何人都可以破解密码或某些应用程序可以做到这一点吗?非常感谢。

4

1 回答 1

2

您可以在此处设置 2 种可能的“密码”:

  • 读取密码
  • 编辑/修改密码

使用“编辑密码”根本不安全,因为可以读取整个文件(即使不知道密码,使用PdfReader.unethicalreading = true;)然后创建一个新的未加密文件:

using System.IO;
using iTextSharp.text.pdf;

namespace PdfDecryptorCore
{
    public class PasswordDecryptor
    {
        public string ReadPassword { set; get; }        
        public string PdfPath { set; get; }
        public string OutputPdf { set; get; }

        public void DecryptPdf()
        {
            PdfReader.unethicalreading = true;

            PdfReader reader;
            if(string.IsNullOrWhiteSpace(ReadPassword))
             reader = new PdfReader(PdfPath);
            else
                reader = new PdfReader(PdfPath, System.Text.Encoding.UTF8.GetBytes(ReadPassword));

            using (var stamper = new PdfStamper(reader, new FileStream(OutputPdf, FileMode.Create)))
            {
                stamper.Close();
            }
        }
    }
}
于 2012-04-16T06:24:22.183 回答