簡體   English   中英

使用iTextSharp加密PDF文檔

[英]Encrypt PDF document using iTextSharp

我想通過禁止填寫和復制文檔來保護自己的PDF文檔。 我為此使用iTextSharp。 我有以下代碼:

  PdfReader reader = new PdfReader(document, System.Text.Encoding.UTF8.GetBytes(PASSWORD));
  using (MemoryStream ms = new MemoryStream())
  {
      using (PdfStamper stamper = new PdfStamper(reader, ms))
      {
           stamper.SetEncryption(
               null,
               Encoding.ASCII.GetBytes(PASSWORD),
               PdfWriter.ALLOW_PRINTING,
               PdfWriter.ENCRYPTION_AES_128);
      }
  }

  reader.Close();

生成文檔時,我使用該代碼對文檔進行加密。 但是稍后,當我在Adobe Reader中打開文檔(在9和11上測試)並檢查“文件>屬性>安全性”時,它們對文檔的填寫和復制沒有任何限制,並且其狀態為“允許”。

該代碼有什么問題嗎?

根據iTextSharp的文檔PdfStamper ,該方法的第二個參數是表示用於加密的PDF文檔數據的目標的輸出流。 您在問題中顯示的代碼在設置加密后僅處理MemoryStream ,因此該代碼可能會應用於您的PDF文檔的任何更改都不會保存到磁盤上,否則將無法在您的應用程序外部使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM