4

PDF 仕様は Adob​​e から入手できますが、正確に読むのが最も簡単なドキュメントではありません。PDF ではドキュメントを暗号化できるため、ドキュメントでさまざまなこと (表示、印刷など) を行うには、ユーザー パスワードまたは所有者パスワードが必要になります。一般的な用途は、エンド ユーザーがパスワードを入力せずに PDF を読めるように PDF をロックすることですが、それ以外のことを行うにはパスワードが必要です。

この方法でロックされている PDF を解析しようとしています (任意のリーダーで開くのと同じ権限を取得するため)。ユーザーパスワードとして空の文字列を使用しても機能しませんが、(仕様のセクション 3.5.2) 管理者パスワードのハッシュを作成するにはユーザーパスワードが必要なようです。

私が望むのは、これを行う方法の説明、または私が何を意図しているのかを理解できるように、これを行うことができる読み取り可能なコード (理想的には Python、C、または C++ ですが、読み取り可能なものであれば何でも構いません) のいずれかです。している。(たとえば) gsview ソースを読み通すよりも、スタンドアロン コードが最適です。

4

3 に答える 3

1

私の記憶が正しければ、任意のパスワードに適用する32(?)バイトの固定パディング文字列があります。すべてのパスワードは、暗号化キーの計算を開始するときに、これらのパディングバイトの一部を切り捨てるか追加することにより、32バイトである必要があります。

ユーザーパスワードが設定されていない場合は、文字列の32バイトすべてをパディングする必要があります。つまり、暗号化キーを計算するための開始点として32パディングバイトを使用します。

これを行ってからしばらく経ちましたが、PDFの暗号化部分は、ほぼすべてのリビジョンで大幅に変更されており、処理するために多くのケースに対処する必要があるため、絶対に混乱していることを覚えています。すべてのPDF。

幸運を。

于 2008-09-20T10:27:58.143 に答える
1

暗号化された PDF を表示するための GSview のプラグインはこちらです。

これでうまくいく場合は、ソースを見ることができるかもしれません。

于 2008-09-08T11:12:56.787 に答える
0

xpdfは、おそらくこの種の問題の優れたリファレンス実装です。私は以前にそれらを使用して暗号化されたPDFを開くことに成功しました。

于 2008-09-21T03:04:42.553 に答える