
Simple Encryption in PHP.
composer require defuse/php-encryption
Dies ist eine Bibliothek zum Verschlüsseln von Daten mit einem Schlüssel oder Passwort in PHP. Sie erfordert PHP 5.6 oder neuer und OpenSSL 1.0.1 oder neuer. Wir empfehlen die Verwendung einer PHP-Version, die weiterhin Sicherheitsunterstützung erhält, was zum Zeitpunkt der Erstellung dieses Textes PHP 8.0 oder höher bedeutet. Die Verwendung dieser Bibliothek mit einer nicht unterstützten PHP-Version kann zu Sicherheitslücken führen.
Die aktuelle Version von php-encryption ist v2.4.0. Es wird erwartet, dass diese Bibliothek bis mindestens zum 1. Januar 2024 stabil bleibt und von ihren Autoren mit Sicherheits- und Fehlerbehebungen unterstützt wird.
Die Bibliothek ist ein gemeinsames Projekt von Taylor Hornby und Scott Arciszewski sowie zahlreichen Open-Source-Mitwirkenden.
Was diese Bibliothek von anderen PHP-Verschlüsselungsbibliotheken unterscheidet, ist erstens, dass sie sicher ist. Die Autoren stießen täglich auf unsicheren PHP-Verschlüsselungscode, daher haben sie diese Bibliothek erstellt, um mehr Sicherheit in das Ökosystem zu bringen. Zweitens ist diese Bibliothek „schwer falsch zu verwenden“. Wie libsodium ist ihre API so konzipiert, dass sie auf sichere Weise einfach und auf unsichere Weise schwer zu verwenden ist.
Diese Bibliothek benötigt außer PHP 5.6 oder neuer mit aktivierten OpenSSL-Erweiterungen (Version 1.0.1 oder später) keine speziellen Abhängigkeiten (dies ist die Standardeinstellung). Sie verwendet random_compat, das in dieser Bibliothek gebündelt ist, sodass Ihre Benutzer keine besonderen Installationsschritte befolgen müssen.
Beginnen Sie mit dem Tutorial. Anweisungen zum sicheren Bezug des Codes dieser Bibliothek finden Sie in der Dokumentation Installieren und Überprüfen.
Nachdem Sie das Tutorial gelesen und den Code erhalten haben, lesen Sie die formale Dokumentation für jede der Klassen, die diese Bibliothek bereitstellt:
Wenn Sie auf Schwierigkeiten stoßen, finden Sie Antworten im FAQ. Dort werden die Lösungen für die am häufigsten gemeldeten Probleme erklärt.
Wenn Sie Kryptograph sind und die grundlegenden Details der Funktionsweise dieser Bibliothek verstehen möchten, lesen Sie die Dokumentation Kryptografie-Details.
Wenn Sie daran interessiert sind, zu dieser Bibliothek beizutragen, lesen Sie die Interne Entwicklerdokumentation.
Diese Bibliothek ist für serverseitige PHP-Software gedacht, die Daten im Ruhezustand verschlüsseln muss. Wenn Sie Software entwickeln, die clientseitig verschlüsseln muss, oder ein System aufbauen, das plattformübergreifende Verschlüsselungs-/Entschlüsselungsunterstützung benötigt, empfehlen wir stattdessen die Verwendung von libsodium.
Wenn die Dokumentation nicht ausreicht, um zu verstehen, wie diese Bibliothek verwendet wird, können Sie sich ein Beispielprojekt ansehen, das diese Bibliothek verwendet:
Dieser Code wurde keiner formellen, bezahlten Sicherheitsüberprüfung unterzogen. Er hat jedoch viel Überprüfung durch Mitglieder der PHP-Sicherheitsgemeinschaft erhalten, und die Autoren sind in der Kryptografie erfahren. In aller Wahrscheinlichkeit sind Sie mit dieser Bibliothek sicherer unterwegs als mit fast jeder anderen Verschlüsselungsbibliothek für PHP.
Wenn Sie diese Bibliothek als Teil Ihres Unternehmens einsetzen und zur Finanzierung einer formellen Überprüfung beitragen möchten, kontaktieren Sie bitte Taylor Hornby.
Der GnuPG-öffentliche Schlüssel, der zum Signieren der aktuellen und neuen Versionen verwendet wird, ist in dist/signingkey-new.asc verfügbar. Sein Fingerabdruck lautet:
6DD6 E677 0281 5846 FC85 25A3 DD2E 507F 7BDB 1669
Sie können ihn anhand von Taylor Hornbys Kontaktseite und Twitter überprüfen.
Ältere Versionen wurden mit einem (inzwischen abgelaufenen) Schlüssel signiert, der in dist/signingkey-old.asc verfügbar ist. Der Fingerabdruck des alten Schlüssels lautet:
2FA6 1D8D 99B9 2658 6BAC 3D53 385E E055 A129 1538
Der Fingerabdruck des alten Schlüssels kann anhand von Taylor Hornbys Kontaktseite und Twitter überprüft werden.
Eine Signatur dieses neuen Schlüssels durch den alten Schlüssel ist in dist/signingkey-new.asc.sig verfügbar.