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