IIC2233 / syllabus-2019-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🎉 🎊
43 stars 69 forks source link

Modelacion bonus contraseña #632

Closed edovt closed 5 years ago

edovt commented 5 years ago

Hola, tengo una duda con la modelación del bonus de la contraseña, ya que tengo 3 ideas, pero siento que cada una tiene sus propios errores:

  1. El cliente agarra la contraseña de la interfaz, la transforma a bytes, y le pide la contraseña hasheada a el servidor, quién se la envía y entonces el cliente compara la contraseña no hasheada con la hasheada. El error de esto sería que el cliente estaría procesando datos y en el enunciado dice que el servidor se debe encargar de esto. Lo bueno de esto es que si el servidor envía la hasheada, el cliente no la puede des-hashear fácilmente.

  2. El cliente agarra la contraseña, la transforma a bytes, la hashea y la envía al servidor, quién la compara con la contraseña de su base de datos. El error de esto sería que bcrypt no deja comparar dos contraseñas hasheadas, ya que pese a que sean la misma contraseña, el resultado de hashear es diferente.

  3. El cliente agarra la contraseña, la transforma a bytes, y la envía sin hashear, y ahora sí el servidor podría comparar esta contraseña con su base de datos. El error de esto sería que en el enunciado se especifica que el cliente debe enviar su contraseña ya codificada.

Saludos!

KnowYourselves commented 5 years ago

Hola @Ed0ss!

Es válido que envíes la contraseña sin hashear y que el servidor ocupe bcrypt para comparar.

Éxito!

gatochico commented 5 years ago

Sumandome a esta issue, y viendo tu duda al implementar la opcion 2 (que es la que debes hacer), si codificas una contraseña con una sal cualquiera, y quieres replicar el hash para ver si la contraseña ingresada una segunda vez calza con la original, debes volverla a hashear con la misma sal que utilizaste la primera vez. De esta forma, ambos hash seran iguales si las contraseñas son iguales. Por ende, tambien deberias almacenar las sales en algun lugar :eyes:

Te dejo este link por si te quedan dudas!