2012-10-17 45 views
5

Làm cách nào để ký một tệp pdf bằng chữ ký số trong perl? Tôi có thể trích xuất nội dung của pdf và để tạo ra chuỗi chữ ký quaThêm chữ ký vào PDF trong perl

# $ nội dung -> Nội dung pdf sẽ được ký kết

của tôi $ private_key Crypt :: OpenSSL :: RSA-> new_private_key ($ key_string);
$ private_key-> use_md5_hash();
ký hiệu $ signature = $ private_key-> ($ content);

Do đó, chữ ký $ có thể được chuyển đổi thành định dạng hex, nhưng tôi không biết cách thêm nó vào tệp PDF. Tôi biết rằng chữ ký trong dạng hex nên được đặt trong trường/Nội dung và phạm vi của văn bản đã ký được đưa ra bởi mảng/ByteRange.

Có mô-đun nào cho mục đích này không? Hoặc bạn có thể cho tôi lời khuyên nào không? Cảm ơn

Trả lời

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

Cảm ơn. Đây là nguyên tắc tạo chữ ký. Nhưng định dạng PDF là duy nhất ở chỗ nó bao gồm hỗ trợ cho chữ ký được nhúng vào trong tài liệu chính nó. Vì vậy, câu hỏi không phải là "làm thế nào để tạo chữ ký?", Nhưng "làm thế nào để nhúng chữ ký vào PDF?". Nếu không có mô-đun Perl cho phép nó (giống như iText cho Java), tôi sẽ đánh giá cao một số liên kết đến mô tả và giải thích về quy trình này. Trong Java, điều này có thể được thực hiện thông qua thư viện iText. Nhưng tôi cần phải làm điều đó trong perl. Vì vậy, nếu không có – user1753233

1

bạn có thể tìm thấy kịch bản này thú vị ... http://mschuette.name/files/pdfsign.pl nó sử dụng PDF :: API2 và Crypt :: OpenSSL todo kỳ diệu của nó ... nó có thể có thể làm cơ sở cho việc tạo ra một cái gì đó của riêng bạn.