2011-07-12 12 views
2

私は、コピー/貼り付けを防ぎ、印刷を許可し、ウォーターマークを追加し、その後の変更を防ぐためにオーナーパスワードを設定するために、PDFにパスワードを設定しています。ItextPDFを使用して、PDFを本当に安全にする方法は?

すべて正常に動作しますが、問題はありません。

私は15日間のpdfの削除ツール、a-pdfのためにこれを無料でダウンロードしました。点滅すると、パスワードの複雑さにかかわらず、すべての保護が削除されます(50文字の長さではすべての種類の文字が試されます)。

itextPDFには、ドキュメントを暗号化する他の方法があります。私は以下を使用しました:

File f = new File("C:/TEMP/zip/waterMarked.pdf"); 

String hardPassword = "D [email protected] CqAk+NQCW)[email protected]&02ifu!2TMX*d 0TGK(j(Kq"; 
byte[] hardPasswordByte = hardPassword.getBytes(); 

PdfReader reader = new PdfReader("C:/TEMP/zip/Original_document-9.pdf"); 

FileOutputStream out = new FileOutputStream(f); 

PdfStamper stamp = new PdfStamper(reader, out); 

//first argument is the user password. If set to something it asks for password when opening file, not wanted. 
stamp.setEncryption(null, hardPasswordByte, PdfWriter.ALLOW_PRINTING, true); 

//do stuff on the stamper, save file. 

誰かがJavaコードからPDF文書を保護する良い方法を知っていますか?

+7

あなたが直面している問題は、タイプや制限に内在しています。PDFを表示するには、ドキュメントからテキストをコピーするのに必要なデータとほぼ同じデータにアクセスする必要があります。確実に印刷を許可することはできませんし、文書からコピーアンドペーストすることもできません。あなたがしようとするすべては、手がかりの障壁を上げるだけです。 –

+3

コピー防止のPDFを作成しないでください。ドキュメントからテキストをコピーするだけでOCRを分解しなければならないのは非常に面倒です。あなたが私を防ぐかどうかにかかわらず、私はそれを実行します。 – endolith

答えて

9

PDFファイルは、2つのパスワード(ユーザーパスワードとオーナーパスワード)をサポートしています。ユーザーがこれらのパスワードを知っていれば、PDFファイルを見ることができます。ファイルにユーザパスワードがある場合、ファイルをPDFビューアで開くと、ビューワはユーザにパスワードの入力を要求し、ユーザパスワードまたは所有者パスワードのどちらかが機能します。ファイルに所有者パスワードのみがある場合、そのファイルのアクセス権を変更しようとすると、その文書が自動的に表示され、パスワードが必要になります。これはPDF仕様で提案されている操作の流れですが、実際には以下のように動作します。ファイルがユーザーパスワードで保護されている場合、パスワードクラッキングには強引なアプローチが必要です。問題は、実際のユーザーがファイルを開くためにパスワードが必要なことです。ファイルが所有者パスワードのみで保護されている場合は、デフォルトの復号鍵があります(パスワードを要求せずにすべての閲覧者がPDFファイルを表示できることを忘れないでください)。また、PDFファイルを処理するアプリケーションは、 。ファイルが解読されると、暗号化せずに保存され、出力ファイルにはパスワードがなくなります。ドキュメントにはオーナーのパスワードしかないので、デフォルトの解読キーを使用して問題なく削除できます。

オーディエンスに応じて、iTextに多少の解決策があります。 ウェブサイトに論文を公開するなど、オーディエンスが広く普及している場合、上記の問題を抱えた簡単なPDF暗号化。サードパーティのDRMソリューションは、より複雑で、さまざまなプラグインがユーザのコンピュータにインストールされている必要があります。証明書の暗号化(iTextがサポートしているかどうかわからない)は、再び複雑で、各ユーザーにはデジタル証明書が必要であり、文書アクセスは各ユーザーに対して定義されています。最後の2つのオプションは、制御されたエンタープライズ環境で機能します。

+0

詳細なお返事ありがとうございます! ITextは証明書の暗号化をサポートしていますが、これはすべて管理するのが非常に複雑で、ターゲットオーディエンスはあまりにも広くセキュリティが施されています。私はすでに存在するものをより良くしようとしていましたが、私は現状を解決すると思います。ヨアヒムも説明したように、依頼人は依然として制限なしで読むことができる必要があります。したがって、保護は読書アプリからの良い意志です。あなたのお返事ありがとうございました! – IceGras

+2

テキストをコピーするすべてのソリューションは、ユーザーがドキュメントを見ることを許可するとすぐに悲惨に失敗します。データをコピーできないような妖精の埃があったとしても、スクリーンショットやOCRソフトウェアは完全に正常に動作します – Voo

関連する問題