Comment chiffrer et déchiffrer des valeurs en AES-256-CBC avec la façade Crypt de Laravel. Génération d’APP_KEY, casts de modèles et stockage sécurisé d’informations personnelles.
Le service de chiffrement de Laravel utilise OpenSSL avec AES-256-CBC (ou AES-128-CBC) et propose une interface simple pour chiffrer et déchiffrer des valeurs.Toutes les valeurs chiffrées par Laravel sont signées par un Message Authentication Code (MAC).
Le déchiffrement échoue donc si la valeur a été altérée.
Avant d’utiliser le chiffrement, la clé key de config/app.php doit être définie.
Sa valeur provient de la variable d’environnement APP_KEY.Générez une clé sûre avec php artisan key:generate.
Une clé cryptographiquement sûre est produite via le générateur d’aléa sécurisé de PHP.
php artisan key:generate
À l’installation de Laravel, la clé est généralement générée automatiquement et stockée dans .env.
Changer la clé déconnecte toutes les sessions utilisateur authentifiées, car Laravel chiffre l’ensemble des cookies, y compris ceux de session.De plus, les données chiffrées avec l’ancienne clé ne peuvent plus être déchiffrées.Pour atténuer cela, listez les anciennes clés séparées par une virgule dans APP_PREVIOUS_KEYS.
Laravel chiffre toujours avec la clé actuelle mais, lors du déchiffrement, essaie les anciennes clés en cas d’échec.
Cela permet une rotation sans interruption pour les utilisateurs.
Schema::create('profiles', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained(); $table->text('my_number')->nullable(); // Chiffré stocké en text $table->text('bank_account')->nullable(); $table->timestamps();});