Ampliación y uso del código de generación de sal para un sistema de inicio de sesión PHP
-
16-12-2019 - |
Pregunta
Estoy trabajando en un sistema de inicio de sesión PHP / MySQL para un proyecto web.Después de mirarlo a través, y muchos artículos en la web, vienen con un marco básico y comenzó a escribir un código para ello.Sin embargo, he llegado a un poco de un cifrado de contraseña.
Después de una noche de lectura, he descubierto que:
- Debería la contraseña de los usuarios con al menos SHA1 o SHA2
- También debería usar una sal generada al azar (esto es de lo que necesito ayuda) y agregarlo a la contraseña antes de encriptarla
- La contraseña hash y la sal generada al azar se debe almacenar en la base de datos y luego se consultaron y combinaron / encriptarse, verificando con la contraseña de los usuarios.
Mi problema está vendiendo generando aleatoriamente la sal,
Solución
Posibilidades que puedo pensar en:
-
Use mt_rand () en un bucle para elegir un código ASCII, obtener el carácter correspondiente con < un href="http://php.net/chr%28%29" rel="nofollow"> chr () y concatenate a la sal.
Esto permite crear sales con cualquier longitud.
-
Defina una cadena con caracteres disponibles, use mt_rand () en un bucle para elegir posiciones aleatorias de , extraiga el carácter en la posición seleccionada con substr () o mb_substr () y concatenar a la sal.
Esto permite crear sales con un conjunto de caracteres elegido y la longitud.
-
Use una función incorporada que genere una cadena aleatoria (por ejemplo, uniqid () ) y opcionalmente lo has hecho .
Esto es rápido y simple.
Normalmente uso la segunda opción.
Otros consejos
uniqid ()?