Skip to main content

Was ist die Crypt-Facade?

Der Verschlüsselungsdienst von Laravel stellt eine einfache Schnittstelle zur Verfügung, um Werte per OpenSSL und AES-256-CBC (bzw. AES-128-CBC) zu ver- und entschlüsseln. Alle in Laravel verschlüsselten Werte werden mit einem Message Authentication Code (MAC) signiert. Wird ein verschlüsselter Wert manipuliert, lässt er sich damit nicht mehr entschlüsseln.

Konfiguration

APP_KEY erzeugen

Vor der Verwendung der Verschlüsselung muss die Option key in config/app.php gesetzt sein. Sie wird aus der Umgebungsvariable APP_KEY gelesen. Erzeugen Sie einen sicheren Schlüssel mit dem Befehl php artisan key:generate. Er nutzt PHPs sicheren Zufallszahlengenerator und erstellt kryptografisch starke Schlüssel.
Bei der Installation von Laravel wird der Schlüssel in der Regel automatisch erzeugt und in der .env-Datei gespeichert.
Geben Sie den APP_KEY niemals heraus. Fällt er in die falschen Hände, können alle verschlüsselten Daten entschlüsselt werden.

Rotation des Verschlüsselungsschlüssels

Wenn Sie den Verschlüsselungsschlüssel ändern, werden alle authentifizierten Nutzersitzungen abgemeldet. Grund ist, dass Laravel alle Cookies – einschließlich Session-Cookies – verschlüsselt. Zudem lassen sich mit einem alten Schlüssel verschlüsselte Daten nicht mehr entschlüsseln. Um dieses Problem abzumildern, können Sie in APP_PREVIOUS_KEYS alte Schlüssel kommagetrennt hinterlegen.
Zum Verschlüsseln nutzt Laravel immer den aktuellen Schlüssel. Beim Entschlüsseln probiert es zunächst den aktuellen Schlüssel und, wenn dieser fehlschlägt, der Reihe nach die alten Schlüssel. So können Nutzerinnen und Nutzer die Anwendung auch während der Rotation weiterverwenden.

Verschlüsseln

Verschlüsseln Sie Werte mit der Methode encryptString der Facade Crypt. Die Werte werden per OpenSSL und AES-256-CBC verschlüsselt und mit einem MAC signiert.
encryptString verschlüsselt Strings ohne vorherige Serialisierung. Möchten Sie Objekte oder Arrays verschlüsseln, verwenden Sie encrypt.

Entschlüsseln

Entschlüsseln Sie Werte mit der Methode decryptString der Facade Crypt. Kann der Wert nicht korrekt entschlüsselt werden – etwa wegen eines ungültigen MAC –, wird eine DecryptException ausgelöst.

Model-Casts

Mit dem Cast encrypted verschlüsselt Eloquent Attribute automatisch beim Speichern und entschlüsselt sie beim Auslesen.
Ist der Cast gesetzt, werden Werte beim Setzen und Auslesen automatisch verschlüsselt bzw. entschlüsselt.
Die encrypted:*-Casts nutzen intern Crypt::encrypt und Crypt::decrypt. Als Datenbankspaltentyp empfehlen sich text oder longText.

Praxisbeispiel: personenbezogene Daten verschlüsselt speichern

Ein typisches Muster für die sichere Ablage personenbezogener Informationen (z. B. Sozialversicherungsnummern oder Kreditkartendaten).

Migration

Model

Controller


Zusammenfassung

Nächste Schritte

Hashing

Erfahren Sie, wie Sie Passwörter sicher hashen und prüfen.

Autorisierung

Steuern Sie Zugriffe mit Policies und Gates.
Zuletzt geändert am 13. Juli 2026