¿Qué es la fachada Crypt?
El servicio de cifrado de Laravel ofrece una interfaz sencilla para cifrar y descifrar valores usando el cifrado AES-256-CBC (o AES-128-CBC) de OpenSSL. Todos los valores cifrados por Laravel se firman con un código de autenticación de mensaje (MAC). Con esto, si el valor cifrado se altera, ya no se puede descifrar.Configuración
Generación de APP_KEY
Antes de usar el cifrado, la clavekey en config/app.php debe estar configurada.
Este valor se lee de la variable de entorno APP_KEY.
Genera una clave segura con el comando php artisan key:generate.
Usa el generador de números aleatorios seguros de PHP para producir una clave criptográficamente segura.
.env.
Rotación de la clave de cifrado
Cambiar la clave de cifrado hace que se desconecten todas las sesiones de usuario autenticadas. Es porque Laravel cifra todas las cookies, incluidas las de sesión. Además, los datos cifrados con la clave anterior no podrán descifrarse. Para mitigar este problema, puedes listar claves antiguas separadas por comas enAPP_PREVIOUS_KEYS.
Cifrado
Cifra un valor con el métodoencryptString de la fachada Crypt.
El valor se cifra con OpenSSL y AES-256-CBC, y se firma con MAC.
Descifrado
Descifra un valor condecryptString de la fachada Crypt.
Si no se puede descifrar correctamente (por ejemplo, MAC no válido), se lanza una DecryptException.
Casts en modelos
Usando el castencrypted en un modelo Eloquent, el cifrado y descifrado del atributo son automáticos.
Los casts
encrypted:* usan internamente Crypt::encrypt y Crypt::decrypt.
Se recomienda usar el tipo de columna text o longText en la base de datos.Ejemplo práctico: almacenamiento cifrado de datos personales
Patrón típico para guardar datos personales (número de identificación, tarjeta de crédito, etc.) de forma segura.Migración
Modelo
Controlador
Resumen
Próximos pasos
Hashing
Aprende a hashear y verificar contraseñas de forma segura.
Autorización
Descubre el control de acceso con políticas y gates.