Para todos mis proyectos web de hobby, he codificado un sistema de inicio de sesión que estos proyectos comparten. No hay datos críticos en estos proyectos, los únicos datos críticos podrían ser contraseñas reutilizadas. Así que trato de cifrar las contraseñas de una manera muy segura.
Mi algoritmo de hashing de contraseña actual no es nada que pueda llamar realmente seguro. Y cuando vi que PHP ahora ofrece un hashing con password_hash
, pensé en cambiar.
Mi pregunta es, ¿cuáles son los beneficios de cambiarme? En términos de, ¿qué protección adicional obtengo, qué orificio (s) reparo, etc.? ¿Y hay algo más que deba hacer para que no sea extremadamente inseguro?
Me gustaría usar las respuestas como una experiencia de aprendizaje para mí, para poder enseñárselas a otras personas que están en mi posición.
Mi algoritmo actual (pseudo-código):
Salt = "some-salt"
Repeat 1000000 times
Password = Sha512(Salt + username + Salt + Password)
Sé que mi sitio es vulnerable a los ataques de tiempo y las funciones integradas de PHP lo arreglarían.
¿Qué más es obviamente inseguro?