Digitales Signieren eines PDF mit PHP, Zend und openssl

8

Ich versuche, eine einfache PDF-Dokument-Signaturroutine zu erstellen, die PHP, openssl und das Zend-Framework (für pdf-redering / handling) verwendet.

Ich habe dies gefunden, aber es wird einfach nicht funktionieren, Zend ist dazu nicht in der Lage Öffnen Sie alle pdf's, nicht einmal Zend's eigenen Test-PDF und Zend wird nicht warum, sondern nur dass es nicht kann.

Ich bin mir ziemlich sicher, dass ich in der Lage wäre, die Schlüssel / Zertifikate effektiv zu erstellen, da dies gut dokumentiert ist. Aber gibt es einen soliden Ansatz, um das generierte Zertifikat an die PDF anzuhängen, wie es die obige Zend Erweiterung vorschlägt? / p> %Vor%

Bearbeiten, Code hinzufügen: Das obige funktioniert nur, wenn ich 'test_pdf2' als Eingabe für Zend_Pdf verwende. Es erkennt das Cert als binär ohne Probleme, aber ich muss in der Lage sein, das PDF zu übergeben, ohne es jemals auf die Festplatte zu schreiben.

    
jbrain 05.06.2012, 19:31
quelle

2 Antworten

8
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ tag123zendframework ___ Zend Framework ist ein Open-Source, objektorientiertes Web Application Framework, implementiert in PHP 7.1 und lizensiert unter der New BSD License. Zend Framework-Anwendungen können auf jedem PHP-Stack ausgeführt werden, der die technischen Anforderungen erfüllt. ___ tag123pdf ___ Das Portable Document Format (PDF) ist ein offener Standard für den elektronischen Dokumentenaustausch, der von der Internationalen Organisation für Normung (ISO) gepflegt wird. Fragen können zum Erstellen, Lesen, Bearbeiten von PDFs mit verschiedenen Sprachen sein. ___ qstntxt ___

Ich versuche, eine einfache PDF-Dokument-Signaturroutine zu erstellen, die PHP, openssl und das Zend-Framework (für pdf-redering / handling) verwendet.

Ich habe dies gefunden, aber es wird einfach nicht funktionieren, Zend ist dazu nicht in der Lage Öffnen Sie alle pdf's, nicht einmal Zend's eigenen Test-PDF und Zend wird nicht warum, sondern nur dass es nicht kann.

Ich bin mir ziemlich sicher, dass ich in der Lage wäre, die Schlüssel / Zertifikate effektiv zu erstellen, da dies gut dokumentiert ist. Aber gibt es einen soliden Ansatz, um das generierte Zertifikat an die PDF anzuhängen, wie es die obige Zend Erweiterung vorschlägt? / p> %Vor%

Bearbeiten, Code hinzufügen: Das obige funktioniert nur, wenn ich 'test_pdf2' als Eingabe für Zend_Pdf verwende. Es erkennt das Cert als binär ohne Probleme, aber ich muss in der Lage sein, das PDF zu übergeben, ohne es jemals auf die Festplatte zu schreiben.

    
___ qstnhdr ___ Digitales Signieren eines PDF mit PHP, Zend und openssl ___ tag123openssl ___ OpenSSL ist ein Open-Source-Software-Toolkit, das das SSL / TLS-Protokoll sowie eine allgemeine kryptografische Bibliothek implementiert. ___ answer10955497 ___

Hinzufügen meiner Lösung als Antwort, nach Halfs Ratschlag: Gelöst dies, weil ich den Inhalt an Zend_Pdf als String übergeben habe, hätte ich Zend_Pdf :: parse ($ new_pdf); verwenden sollen, wie es sehr wahrscheinlich in das Handbuch. (oops)

Weiter; Ich löste so ziemlich ALLE meine Probleme mit dem digitalen Signieren von PDFs verschiedener Versionen und Formularbestandteile, indem ich zu TCPDF wechselte, wie einige der Artikel hier andeuten. Eine ähnliche Einschränkung wurde mit TCPDF gefunden, wenn Sie jedoch Strings verwenden, stellen Sie sicher, dass Sie TCPDFs "writeHTMLCell" anstelle von "writeHTML" verwenden. Und achten Sie auf PHPs "magic_quotes", fehlerhafte Whitespaces, Kodierungen und Goblins.

    
___ tag123sign ___ Eine digitale Signatur ist ein mathematisches Schema zum Nachweis der Authentizität einer digitalen Nachricht oder eines Dokuments. ___ antwort10903903 ___

TCPDF unterstützt signing von PDF-Dateien. Vielleicht findest du etwas Nützliches im Quellcode.

    
___
Oliver 05.06.2012 19:47
quelle
0

Hinzufügen meiner Lösung als Antwort, nach Halfs Ratschlag: Gelöst dies, weil ich den Inhalt an Zend_Pdf als String übergeben habe, hätte ich Zend_Pdf :: parse ($ new_pdf); verwenden sollen, wie es sehr wahrscheinlich in das Handbuch. (oops)

Weiter; Ich löste so ziemlich ALLE meine Probleme mit dem digitalen Signieren von PDFs verschiedener Versionen und Formularbestandteile, indem ich zu TCPDF wechselte, wie einige der Artikel hier andeuten. Eine ähnliche Einschränkung wurde mit TCPDF gefunden, wenn Sie jedoch Strings verwenden, stellen Sie sicher, dass Sie TCPDFs "writeHTMLCell" anstelle von "writeHTML" verwenden. Und achten Sie auf PHPs "magic_quotes", fehlerhafte Whitespaces, Kodierungen und Goblins.

    
jbrain 08.06.2012 20:11
quelle

Tags und Links