En esta página:
Una de las tecnologías más modernas para proteger contraseñas en PHP 7 es Argon 2, no estamos diciendo que sea la mejor, pero si una de las más seguras hasta la fecha de este artículo, para que conozcas más sobre Argon 2 e recomendamos leer nuestro artículo Protección de Contraseñas con Argon2 en PHP 7 y estés familiarizado con este artículo en donde te mostraremos como usar Argon 2 en Laravel 5.7, vamos con el artículo.
Notas
- Para poder utilizar Argon 2 en Laravel lo óptimo es que tu servidor tenga la versión 7.2 o superior de PHP.
- La librería Argon2id requiere de PHP 7.3 o superior.
Si deseas configurar las librerías de seguridad para las contraseñas Bycript o Argon2 puedes hacerlo dentro del archivo hashing.php que se encuentra ubicado en la carpeta config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/proyecto_laravel_5_7 ├── app/ ├── bootstrap/ ├── config/ ├── app.php ├── auth.php ├── ... ├── hashing.php // Archivo de configuración de la librería Argon ├── ... ├── database ├── public ├── resources ├── ... |
Con Argon 2 puedes mejorar la seguridad de las contraseñas de tu proyecto en PHP, para este artículo será con Laravel 5.7 tanto para usuarios administradores o públicos que cuenten con una contraseña.
Para poder usar Argon 2 en tu proyecto Laravel 5.7 debes de instanciar el Facade Hash y pasarle el método make al password, veamos un ejemplo a continuación
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; // Facade Hash use App\Http\Controllers\Controller; class CambiarPasswordController extends Controller { public function update(Request $request) { $request->user()->fill([ 'password' => Hash::make($request->newPassword) ])->save(); } } |
Eso es todo, no olvidemos que Laravel es un Framework para el desarrollo ágil de proyectos con PHP, no necesitas hacer demasiadas cosas.
Si deseas personalizar Argon 2 en el mismo código, puedes hacerlo cuando estas pasandole el método make al password y configurar los datos en memory, time y threads, estos valores esta detallados en el artículo que te recomendamos leer al inicio de este artículo.
1 2 3 4 5 6 7 |
$hashed = Hash::make('password', [ 'memory' => 1024, 'time' => 2, 'threads' => 2, ]); |
Puedes verificar que la contraseña que el usuario ha ingresado para su cuenta corresponda a un hash determinado con el método check
1 2 3 4 5 |
if (Hash::check('plain-text', $hashedPassword)) { // Las contraseñas coinciden... } |
También puedes verificar con la función needsRehash si los datos memory, time y thread han sido modificados desde que una contraseña fue hasheada
1 2 3 4 5 |
if (Hash::needsRehash($hashed)) { $hashed = Hash::make('plain-text'); } |
Como puedes ver no es muy complicado usar Argon 2 de PHP en Laravel 5.7
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.