2015-10-19 23 views
5

Với API WebCrypto đang phát triển và được Chrome và Firefox hỗ trợ, tôi muốn sử dụng nó để ký số hóa tài liệu PDF. Không có nhiều tài liệu xung quanh, nhưng tôi đã tìm thấy một số ví dụ [1] và một thư viện có tên là PKI.js [2]. Trong ví dụ, quá trình ký tên được mô tả, nhưng cuối cùng, chữ ký được trả về. Tôi mong đợi tập tin PDF Base64 của tôi được trả về một lần nữa trong một chuỗi Base64 đã ký, nhưng thật đáng buồn, đây không phải là những gì sẽ xảy ra. PKI.js cũng vậy, theo hiểu biết của tôi, không cung cấp cách đăng ký Base64 PDF của tôi.Đăng nhập PDF bằng JavaScript đơn giản

Có cách nào để ký PDF với JavaScript và API WebCrypto không? Bạn có thể nhập khóa riêng tư trong một số <textarea> hoặc thậm chí tốt hơn, được lưu trữ trong cài đặt chứng chỉ của trình duyệt.

Base64 PDF (từ REST API) → Đăng với JS & chứng → Signed Base64 PDF (gửi để REST) ​​

Trả lời

5

Nó về mặt kỹ thuật có thể thực hiện điều này, trên thực tế, đây là một trong những kịch bản mà chúng tôi đã lưu ý khi chúng tôi tạo PKIjs (đó là lý do tại sao có mẫu này) - https://pkijs.org/examples/PDFexample.html

Điều đó nói rằng việc ký kết yêu cầu làm việc với chính cấu trúc PDF, yêu cầu trình phân tích cú pháp tùy chỉnh hoặc sửa đổi đối với một trình phân tích hiện tại (ví dụ: pdfjs).

Ngắn câu chuyện, việc ký một tệp PDF trong trình duyệt sẽ mất nhiều công sức, đó là điều chúng tôi đang làm việc.

+0

Tôi muốn ký văn bản thuần túy, có thể với thư viện này? Tôi không tìm thấy một ví dụ có thể đọc một khóa p12 cert + private và tạo ra một chữ ký. – Michael

+1

Bạn có thể ký bất cứ điều gì với nó. Ví dụ này ký các tệp tùy ý - https://pkijs.org/examples/CMSSigned_complex_example.html ví dụ này cho thấy việc nhập PKCS # 12s - https://pkijs.org/examples/PKCS12SimpleExample.html xem http://unmitigatedrisk.com/? p = 543 đối với một số hạn chế và ghi chú thực hiện. – rmhrisk

2

PDFSign.js, thư viện có thể ký một tệp PDF trong trình duyệt. Nó sử dụng forge mặc dù cho chữ ký. Nếu PKI.js hỗ trợ các chữ ký pkcs7 tách rời, thì sẽ dễ dàng thay thế giả mạo.

Các vấn đề liên quan