【问题标题】:Add signature into PDF in perl在perl中将签名添加到PDF中
【发布时间】:2012-10-17 14:07:26
【问题描述】:

如何在 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 数组给出。

是否有任何用于此目的的模块?或者你能给我一些建议吗?谢谢

【问题讨论】:

    标签: perl pdf digital-signature


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      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);
      

      【讨论】:

      • 谢谢。这就是签名创建的原理。但 PDF 格式的独特之处在于它支持将签名嵌入文档本身。因此,问题不是“如何创建签名?”,而是“如何将签名嵌入 PDF?”。如果没有启用它的 Perl 模块(类似于用于 Java 的 iText),我将不胜感激一些链接到此过程的描述和解释。在 Java 中,这可以通过 iText 库来完成。但我需要在 perl 中完成。所以如果没有
      猜你喜欢
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多