Encriptar bases de datos en Laravel

arrow_back Blog

En algunas ocasiones podemos tener la necesidad de encriptar bases de datos en Laravel, más aún con el RGPD. Si ese es tu caso, en este tutorial vamos a ver qué sencillo es conseguir este propósito gracias a Eloquent Mutators y Accessors. Definir un Trait para extender Eloquent Lo primero que vamos a hacer para conseguir un comportamiento más dinámico es crear un Trait para sobrescribir los métodos getAttribute y setAttribute de Eloquent, los cuáles nos permitirán alterar los datos de nuestro modelo al momento de obtener y establecer datos.

Además de los métodos mencionados anteriormente, también tenemos 2 métodos importantes, el método encrypt y el método decrypt, es importante decir que este tipo de encriptación no es fiable si los datos que quieres manejar son sensibles, el motivo es que nosotros vamos a querer encriptar pero también desencriptar para mostrar estos datos posteriormente, incluso para iniciar sesión utilizando el correo electrónico, este último es el motivo real, para que fuese seguro la variable $iv debería ser dinámica y no estática. Aplicar el Trait Encryptable a nuestros modelos Ahora vamos a abrir por ejemplo el modelo User para utilizar el Trait Encryptable de la siguiente forma.

Sólo por utilizar la propiedad $encryptable pasando las columnas que queramos encriptar en base de datos tenemos suficiente, si ahora por ejemplo registras un nuevo usuario verás que las columnas name y email son encriptadas en base de datos y si obtienes los usuarios verás que al acceder a dichas columnas éstas aparecen sin encriptar.

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2024 © Todos los derechos reservados.

Contacto