Aquí: Ayuda a comprender la autenticación básica del usuario con sales y el hashing
Lo explican bastante bien, pero todavía estoy luchando por entender esta parte ...
Ahora, cuando un usuario vuelve a iniciar sesión, envía su nombre de usuario y Contraseña en el formulario. A continuación, desea ver si están en la tabla para entonces:
1) Busque el nombre de usuario suministrado en su base de datos y devuelva el hash y la sal
2) Tome el nombre de usuario proporcionado y vuelva a ejecutar la función de hashing usando la sal obtenida en 1 para hacer algo como hash (salt + contraseña enviar en el formulario)
3) Si el hash generado en 2, coincide con el recuperado de la base de datos en 1, entonces sabes que proporcionaron la correcta contraseña
¿El lado del cliente de la aplicación crea el hash almacenado (pw + salt), lo envía a través de ssl / tls al servidor y luego verifica si coincide con el que se trazó en el servidor? Si es así, ¿cómo obtenemos la sal? ¿Está bien enviarlo de servidor a cliente en texto plano sobre ssl / tls?
¿O enviamos la contraseña desde el lado del cliente al servidor en texto simple a través de ssl / tls y luego generamos el hash (pw + salt) en el lado del servidor y luego verificamos si coincide?