Skip to main content

Wat is de Crypt-facade?

De versleutelingsservice van Laravel biedt een eenvoudige interface voor het versleutelen en ontsleutelen van waarden met AES-256-CBC-versleuteling (of AES-128-CBC) via OpenSSL. Alle in Laravel versleutelde waarden zijn ondertekend met een message authentication code (MAC). Daardoor kan een versleutelde waarde die is gemanipuleerd niet meer worden ontsleuteld.

Configuratie

De APP_KEY genereren

Voordat je versleuteling gebruikt, moet de key-instelling in config/app.php zijn geconfigureerd. Deze waarde wordt gelezen uit de omgevingsvariabele APP_KEY. Genereer een veilige sleutel met het commando php artisan key:generate. Er wordt een cryptografisch veilige sleutel gegenereerd met de veilige willekeurige-getallengenerator van PHP.
Bij de installatie van Laravel wordt deze meestal automatisch gegenereerd. De gegenereerde sleutel wordt opgeslagen in het .env-bestand.
Maak de APP_KEY nooit openbaar. Als deze sleutel uitlekt, kan alle versleutelde data worden ontsleuteld.

Rotatie van de versleutelingssleutel

Als je de versleutelingssleutel wijzigt, worden alle geauthenticeerde gebruikerssessies uitgelogd. Dat komt doordat Laravel alle cookies versleutelt, inclusief de sessiecookie. Bovendien kan data die met de vorige sleutel is versleuteld niet meer worden ontsleuteld. Om dit probleem te verzachten, kun je oude sleutels kommagescheiden opsommen in APP_PREVIOUS_KEYS.
Laravel gebruikt voor versleuteling altijd de huidige sleutel, maar als ontsleutelen met de huidige sleutel mislukt, probeert het de oude sleutels een voor een. Zo kunnen gebruikers de applicatie blijven gebruiken tijdens een sleutelrotatie.

Versleutelen

Versleutel waarden met de encryptString-methode van de Crypt-facade. Versleutelde waarden gebruiken OpenSSL met AES-256-CBC-versleuteling en worden ondertekend met een MAC.
encryptString versleutelt strings zonder serialisatie. Gebruik encrypt als je objecten of arrays wilt versleutelen.

Ontsleutelen

Ontsleutel versleutelde waarden met de decryptString-methode van de Crypt-facade. Als het ontsleutelen niet lukt, bijvoorbeeld omdat de MAC ongeldig is, wordt een DecryptException gegooid.

Modelcasts

Met de encrypted-cast op een Eloquent-model kun je attributen automatisch laten versleutelen en ontsleutelen.
Met een geconfigureerde cast wordt bij het toewijzen en ophalen van waarden op het model automatisch versleuteld en ontsleuteld.
De encrypted:*-casts gebruiken intern Crypt::encrypt en Crypt::decrypt. Als kolomtype in de database raden we text of longText aan.

Praktijkvoorbeeld: persoonsgegevens versleuteld opslaan

Een typisch patroon om persoonsgegevens (burgerservicenummers, creditcardnummers, enz.) veilig in de database op te slaan.

Migratie

Model

Controller


Samenvatting

Volgende stappen

Hashing

Leer hoe je wachtwoorden veilig hasht en verifieert.

Autorisatie

Uitleg over toegangscontrole met policies en gates.
Laatst gewijzigd op 6 september 2026

Gerelateerde onderwerpen

RedisDeploymentContractsFacades