PHP - login php mysql con password AES_ENCRYPT

 
Vista:
sin imagen de perfil

login php mysql con password AES_ENCRYPT

Publicado por Miguel (2 intervenciones) el 05/06/2019 13:18:37
Hola a todos;

Buscando información sobre el almacenamiento seguro de contraseñas en MySQL, leí que era una buena opción encriptarla con el algoritmo AES....

Hice esta inserción tras mi formulario....

"INSERT INTO ………….
…………….. VALUES
……………………… …………………., AES_ENCRYPT('$_POST[Password]', SHA2('CLAVE',512)), …………….


almacenándola en un campo tipo Blob.

Hasta ahí todo bien (creo :-)) pero a la hora de hacer el login no he sido capaz de recuperar el valor del campo para comparar con el insertado en el formulario...…

Estoy leyendo muchos ejemplos de este procedimiento muy diferentes unos de otros, y bastante antiguos (2007, 2011, ….) pero ninguno me ha funcionado ….

conocéis algún ejemplo actual y en castellano, fácil de seguir para un novato..... 8-/

Gracias a todos y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kevin
Val: 87
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

login php mysql con password AES_ENCRYPT

Publicado por Kevin (14 intervenciones) el 05/06/2019 15:08:26
Hola Miguel, saludos.

En lo personal te recomiendo las funciones de PHP password_hash y password_verify
La primera sirve para encriptar una cadena, que en este caso sería la contraseña. La segunda es para verificar la contraseña encriptada, con la que se ingresó en ese momento.
A mi en lo personal me ha funcionado de maravilla, tiene buena documentación y ejemplos sencillos de implementar, te puedo dar un ejemplo de como implementarla:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function encriptaPassword($contra){
 
    $salt = 15;
 
    $contra = password_hash($contra, PASSWORD_DEFAULT, ["cost" => $salt]);//Se encripta la contraseña.
 
    return $contra;//Se devuelve la contraseña encriptada.
 
}//Fin de la función de encriptar la contraseña.
 
 
public function verificaPassword($contra_ingresada,$contra_encriptada){
 
    return password_verify($contra_ingresada,$contra_encriptada);//Se verifica la contraseña que se ingresó con la que esta encriptada.
 
}//Fin de la funcion de verificar las contraseñas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar