Verschlüsseln von Dateien mithilfe von PGP in PHP?
Ich will PGP-Verschlüsselung verschlüsselt CSV-Dateien, ich bin die Erzeugung durch ein PHP-Skript, und dann schicken Sie die Datei an Kunden per E-Mail. Client geben mir den Verschlüsselungs-Schlüssel, die ich brauche, zu verwenden für die Verschlüsselung von Dateien.
Habe ich Gegoogelt über PGP und festgestellt, es ist Pretty Good Privacy, auch ich fand OpenPGP http://www.openpgp.org/ und GnuPG http://www.gnupg.org/ Was sind diese zwei Arten von PGP? und welche soll ich verwenden?
Auch, wie das verschlüsseln von Dateien mithilfe von PGP in PHP mit dem Schlüssel, den mein AUFTRAGGEBER?
Habe ich diesen Begriff gehört zunächst mal, kann irgendjemand bitte helfen, das zu verstehen und die Umsetzung dieser in der PHP.
InformationsquelleAutor Prashant | 2013-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Frage 1: Über PGP
Also, was Sie tun möchten, zu verschlüsseln, um eine OpenPGP - Taste. Die Umsetzung von OpenPGP, das er verwendet, um die Daten zu entschlüsseln, ist nicht wichtig für Sie. Mit PHP, Häufig GnuPG verwendet wird und dort sind Schnittstellen eingebaut.
Frage 2: die Verwendung von GnuPG in PHP
Verwenden Sie die GnuPG-Schnittstelle, das ist eine Erweiterung, die installiert werden kann, für PHP.
Zuerst importieren Sie den Schlüssel, wo
$keydata
ist der ASCII armored public key:Dann verwenden Sie diese Taste, um die Daten zu verschlüsseln, dieses mal mit dem client-key ' s fingerprint:
Wenn Sie wollen, um Dateien zu verschlüsseln, Lesen und übergeben Sie an
encrypt()
. Werden Sie sicher, dass mindestens die lange Schlüssel-id (zB.DEADBEEFDEADBEEF
), besser Fingerabdrücke (wie im Beispiel) bei der Referenzierung von Schlüsseln; und nie verwenden kurze Schlüssel-IDs (DEADBEEF
), denn diese sind anfällig für collision-Angriffe.Das ist ein mehr umfassendes Beispiel für beides Hinzugefügt, die von einem Benutzer in das PHP-Handbuch.
Möchten Sie die E-mail-verschlüsselte Dateien als Anhang oder verschlüsseln des gesamten E-mail?
Ich bin nicht sicher, dass der client, sagte die Datei verschlüsseln mit PGP und senden Sie es in der mail.
Klarstellung: addencryptkey erfordert den Fingerabdruck. Sie können die Benutzer-Fingerabdruck mit
gpg –fingerprint {user_id}
.Verwenden Sie niemals Benutzer-IDs, vor allem nicht auf die kurze (8-stellig) ersetzt. Siehe Was ist ein OpenPGP-Schlüssel-ID-Konflikt?. Für die Programmierung/scripting Zweck, immer speichern und verarbeiten der vollständigen Fingerabdruck. Lange key-id akzeptabel sind für die Interaktion mit dem Benutzer, wenn durch kurze Schlüssel-id für eine Interaktion, immer den Benutzer warnen und sicherstellen, dass Vertrauen nicht alles ohne überprüfung der Fingerabdruck oder lange ID.
InformationsquelleAutor Jens Erat
Gehen hier eine Antwort, wie viele Beispiele im ganzen net für PHP GnuPG sind sehr nackten Knochen und hoffentlich spart jemand einige frustration.
Grundsätzlich, es spiegelt wie die GnuPG Kommandozeilen-tool funktioniert. Sie müssen zum importieren eines Schlüssels wenn es nicht bereits in die gpg-Schlüssel ring-dann müssen Sie dem Empfänger die Schlüssel für die Verschlüsselung/Entschlüsselung.
Wenn Sie Tat, was ich Tat, und übergeben Sie die Schlüssel der Empfänger nicht funktioniert!
Es ist nicht klar, was das Feld in entweder dem GPG-Handbuch oder In der PHP-Dokumentation, die sich auf diesem Gebiet als "Fingerabdruck". Überprüfen Sie die gpg-Schlüssel ring für Ihre frisch importierte Schlüssel mit:
Diese Ausgabe wird etwa wie folgt:
Dadurch erhalten Sie die UID-und in der zweiten Zeile der Fingerabdruck im Zusammenhang mit jedem Schlüssel. Soweit ich das sagen kann, können Sie die UID-und Fingerabdruck als Empfänger.
Also Ihre PHP-code zu verschlüsseln, könnte wie folgt Aussehen:
Dann die Empfänger-code wird wie folgt Aussehen:
Hinweis: die Fingerabdrücke sind die gleichen für beide, den Empfänger, den öffentlichen und den privaten Schlüssel.
Es ist auch ein bekanntes Problem mit adddecryptkey nicht mit einer passphrase! Sie müssen entweder entfernen Sie die passphrase oder ändern Sie Ihre version von GnuPG.
InformationsquelleAutor Dean Or