Estoy buscando un algoritmo de cifrado que me permita saber si la contraseña proporcionada es la correcta o no.
Esta pregunta se puede considerar como un seguimiento de Q . En particular, la respuesta de bethlakshmi :
Cuando quieras que el servidor use la clave, supongo que el proceso es el siguiente:
- el usuario le da al sistema su contraseña
- El sistema comprueba la contraseña, la revisa, y está bien. El sistema
- toma la contraseña (¡no el hash!) y el salt y calcula la clave de cifrado El sistema
- toma la clave de cifrado y descifra la clave AES
Me gustaría hacer los pasos 3 y 4 y olvidarme del 1 y el 2. No quiero almacenar el hash de la contraseña (o contraseña + sal), así que no quiero verificar la contraseña para la corrección como en los pasos 1 y 2.
Propuesta : me gustaría calcular la clave de cifrado e intentar descifrar la clave AES. Una forma sería que la clave AES, una vez descifrada con una contraseña válida, pueda realmente permitir la autenticación o ... y en caso de que no sea válida, la autenticación fallará.
- Primera pregunta: ¿Se considera la propuesta mala práctica o no? en caso de que sea mala práctica, por supuesto, agregue el ¿por qué?
- Volviendo a la pregunta real: ¿hay un método de cifrado (con esto me refiero al método de cifrado utilizado para cifrar la clave AES) que devolvería algún código de error si la contraseña proporcionada es incorrecta?