5

如何在 perl 中使用数字签名对 pdf 文件进行签名?我能够提取pdf的内容并通过生成签名字符串

# $content -> 要签名的 pdf 内容

我的 $private_key Crypt::OpenSSL::RSA->new_private_key($key_string);
$private_key->use_md5_hash();
我的 $signature = $private_key->sign($content);

因此, $signature 可以转换为十六进制格式,但我不知道如何将其添加到 PDF 文件中。我知道十六进制形式的签名应该放在 /Contents 字段中,签名文本的范围由 /ByteRange 数组给出。

有没有为此目的的模块?或者你能给我一些建议吗?谢谢

4

2 回答 2

2

你可能会发现这个脚本很有趣...... http://mschuette.name/files/pdfsign.pl它使用 PDF::API2 和 Crypt::OpenSSL 来发挥它的魔力......它可能可以作为创建一些东西的基础你自己。

于 2016-01-21T07:14:51.680 回答
0
use Crypt::OpenSSL::RSA;
use File::Slurp;

my $keystring = read_file('private_key.pem');
my $private_key = Crypt::OpenSSL::RSA->new_private_key($keystring);
$private_key->use_md5_hash();
my $signature = $private_key->sign($plaintext);
于 2012-10-17T14:18:16.467 回答