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 に答える