Todos sabemos que es importante tener contraseñas seguras en nuestra base de datos de forma de que si algún "hacker" logra entrar en ella le sea muy difícil o imposible descifrar la contraseña usando saltos, php ha implementado una función password_hash a partir de PHP 5.5. Pero para los que no tienen PHP 5.5 se puede usar una implementacion password_compat la cual solo funciona en PHP >=5.3.7.
Constantes predefinidas
Las usamos para crear el hash de la contraseña. Existen dos:
PASSWORD_BCRYPT - se utiliza para crear un hash de la contraseña con el algoritmo CRYPT_BLOWFISH.
if(CRYPT_BLOWFISH == 1){PASSWORD_DEFAULT - si no se especifica otro algoritmo se utiliza este por defecto.
echo '<br />Blowfish: '.crypt('rasmuslerdorf','$2a$07$usesomesillystringforsalt$')."\n";
}
Password Hashing
Aqui ahora si vamos al tema! :D
En este caso como mi version no es la requerida para usar esta funcion utilizare la libreria que podemos descargas solo es necesario el archivo password.php
Funcion password_hash()
Esta funcion lo que hace es crear un hash de contraseña. Tiene los siguientes parametros:
password_hash($acalacontraseña,$acaloquegeneralacontraseña,
$acaopcionesdelquegeneralascontraseñas)
$acalacontraseña - Es la contraseña que se utilizara
$acaloquegeneralacontraseña - Es el algoritmo que se utilizara
$acaopcionesdelquegeneralascontraseñas - Son opciones para el algoritmo que cifra cada algoritmo tiene sus opciones.
Un ejemplo:
El resultado es el siguiente:
Funcion password_verify()
En otro caso supongamos que si insertamos esos datos, en una db con un salto mas seguro, podemos empezar a verificar esos datos usando de manera rapida esta funcion, la cual comprueba que la contraseña coincida con el hash, su sintaxis es:
password_verify($contraseña,$hash)
$contraseña - La contraseña, si suponemos que es un login podria ser la entrada del usuario
$hash - El hash que generamos con la funcion password_hash()
Un ejemplo:
En este caso podriamos usar un select para seleccionar los datos como es la contraseña si estuviera guardada en una base de datos y asi verificarla, pero como es un ejemplo, entonces aqui esta:
Si ingresamos algo que no sea micontrasena en el campo de password entonces nos devolvera un mensaje de error:
Pero en caso de que ingreses micontrasena devolvera un mensaje de que te has logeado correctamente.
Y bueno eso seria todo hay otras dos funciones que son:
password_need_rehash()No menos importantes pero no van a ser explicadas aqui.
password_get_info()
Espero que este apartado les haya sido de utilidad y lo usen en sus proyectos. :)
No hay comentarios:
Publicar un comentario