4

デジタル署名された PDF ドキュメント (フォームに記入済み) があるとします。PHP を使用してその PDF ファイルを検証する方法を見つける必要があります。

function を使用する必要があることはわかっていますopenssl_verify($data, $signature, $pub_key_id)。3 つのパラメーターが必要です (公開証明書を持っています)。

PDF ファイルから署名済みデータと署名自体を抽出するにはどうすればよいですか?

4

2 に答える 2

0

PDF を解析する必要があります。理論的には、独自の解析関数を作成できます。ただし、既製のものを使用すると、多くの時間を節約できます。

Apache の PDFBox はどうですか? 他のシェル スクリプトとして実行するか、PHP/Java ブリッジを使用することができます。

手動で行うことにした場合は、パーサーを実装する方法についてPDF 仕様を参照してください。複雑な部分は無視して、startxref を探すことで署名を見つけることができるはずです。

VersyPDF.PHPのようなプロプライエタリなソリューションもありますが、それらはあなたの仕事には少しやり過ぎかもしれません (ただし、透かしの入った出力を気にしないため、評価版を使用することでうまくいくかもしれません)。

于 2013-02-20T16:48:26.683 に答える
0

データと署名を抽出するには、PDF の /ByteRange フィールドで数値を使用できます。/ByteRange[abcd] として 4 つの数字があります。署名は b(th) バイトから c(th) バイトまでで、残りはデータです。PHP では、stream_get_contents() 関数を使用してストリームごとにコンテンツを取得できます。

于 2014-04-14T17:25:39.720 に答える