在perl中向PDF文件添加签名

5
在Perl中如何使用数字签名对PDF文件进行签名?我能够提取PDF内容并通过以下方式生成签名字符串:
# $content -> 待签名的pdf内容 my $private_key Crypt::OpenSSL::RSA->new_private_key($key_string); $private_key->use_md5_hash(); my $signature = $private_key->sign($content);
因此,$signature可以转换为十六进制格式,但我不知道如何将其添加到PDF文件中。我知道十六进制形式的签名应放置在/Contents字段中,并且已签名文本的范围由/ByteRange数组给出。
是否有任何模块可用于此目的?或者您可以给我一些建议吗?谢谢。
2个回答

2
你可能会觉得这个脚本很有趣...它使用PDF::API2和Crypt::OpenSSL完成其工作...它可能可以作为创建自己东西的基础。请查看http://mschuette.name/files/pdfsign.pl

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);

1
感谢您。这是签名创建的原则。但是,PDF格式独特之处在于它包括支持将签名嵌入文档本身的功能。因此,问题不是“如何创建签名?”,而是“如何将签名嵌入PDF中?”。如果没有Perl模块可以实现它(类似于Java的iText),我将感激一些描述和解释此过程的链接。在Java中,可以通过iText库完成此操作。但我需要在perl中完成它。所以如果没有... - user1753233

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接