Comparte en Facebook Twitter Google+

encriptar-datos-laravel-5-1

Laravel nos brinda una forma y sencilla de encriptar nuestros datos, de esta forma hacerlos ilegibles a receptores no autorizados. El único objetivo de esta técnica es incrementar la seguridad de los datos y por lo tanto la confidencialidad de los mismos.

Quiero mostrar como podemos almacenar información encriptada en la base de datos y luego como hacer para desencriptarla para su posterior uso.

Comencemos por crear una vista llamada encryption.blade.php con un formulario sencillo, el cual para este ejemplo solo llevará dos campos, título y descripción:

Creamos la ruta para nuestra vista, la llamaré encryption.blade.php:

Muy bien, creamos el controlador, lo llamaré TestController, desde la consola:

Perfecto, ahora crear el modelo que llamaré Encryption:

Modificamos el archivo del modelo creado:

No olvidemos la migración para crear nuestra tabla encriptions:

Modificamos nuestra migración:

Corremos la migración.

Recuerda: antes de ejecutar la migración verificar que tienes la configuración correcta para la base de datos en tu archivo .env

Ya tenemos todo listo, ahora podemos crear nuestra función saveEncription en nuestro controlador TestController:

Nota: en el controlador se importó  el Facade con la línea:

use Illuminate\Support\Facades\Crypt;

Agregamos la ruta correspondiente para la función que creamos:

Ya podemos dirigirnos a nuestra vista con la dirección:  nombre_de_tu_app/encryption y verificar su funcionamiento:

form

Guardamos la información.

Si nos dirigimos a phpMyAdmin o cualquier manejador de Base de Dato que estén utilizando podrán ver que los datos fueron encriptado y guardados correctamente.

Ejemplo sin encriptación:

sin-encryption

Ejemplo con encriptación:

con-encryption

Para luego desencriptar los datos, utilizamos la función decrypt, ejemplo:

Espero que les haya gustado y les sea útil. Recuerda comentar y/o compartir en tus redes sociales.

Lecturas recomendadas

Aprende PHP, Laravel y más por sólo 999 al mes: ver planes.

Lección anterior Manejo de cadenas de texto con Laravel Lección siguiente PHP Traits en Laravel 5.1