Situatie
Serviciile de criptare Laravel oferă o interfață simplă și convenabilă pentru criptarea și decriptarea textului prin OpenSSL folosind criptarea AES-256 și AES-128. Toate valorile criptate ale Laravel sunt semnate folosind un cod de autentificare a mesajelor (MAC), astfel încât valoarea lor subiacentă să nu poată fi modificată sau modificată odată criptată.
Solutie
Înainte de a utiliza codificatorul Laravel, trebuie să setați opțiunea de configurare a cheii în fișierul de configurare config/app.php. Această valoare de configurare este determinată de variabila de mediu APP_KEY. Ar trebui să utilizați comanda php artisan key:generate pentru a genera valoarea acestei variabile, deoarece comanda key:generate va folosi generatorul PHP securizat de octeți aleatori pentru a construi o cheie sigură criptografic pentru aplicația dvs. De obicei, valoarea variabilei de mediu APP_KEY va fi generată pentru dvs. în timpul instalării lui Laravel.
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Crypt; class DigitalOceanTokenController extends Controller { /** * Store a DigitalOcean API token for the user. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function storeSecret(Request $request) { $request->user()->fill([ ‘token’ => Crypt::encryptString($request->token), ])->save(); }} |
Puteți cripta o valoare folosind metoda encryptString oferită de fațada Crypt. Toate valorile criptate sunt criptate folosind OpenSSL și cifrul AES-256-CBC. În plus, toate valorile criptate sunt semnate cu un cod de autentificare a mesajelor (MAC). Codul de autentificare a mesajului integrat va împiedica decriptarea oricăror valori care au fost modificate de utilizatori rău intenționați:
use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Support\Facades\Crypt; try { $decrypted = Crypt::decryptString($encryptedValue); } catch (DecryptException $e) { // } |
Puteți decripta valori folosind metoda decryptString oferită de fațada Crypt. Dacă valoarea nu poate fi decriptată corect, cum ar fi atunci când codul de autentificare al mesajului este invalid, va fi lansată o excepție Illuminate\Contracts\Encryption\DecryptException.
Leave A Comment?