¿Cuál es la forma más segura de almacenar las contraseñas de los usuarios dentro de la base de datos usando PHP? [duplicar]
Frecuentes
Visto 301 veces
1
¿Cuál es la forma más segura y eficiente de almacenar contraseñas dentro de las tablas de la base de datos usando PHP?
Hasta ahora he usado el md5()
y el sha256
algoritmo para almacenar contraseñas donde ambos pueden ser fácilmente pirateados usando tablas de arco iris si finalmente alguien obtiene acceso a la base de datos.
2 Respuestas
3
Bcrypt generalmente se considera la opción más segura.
Si está utilizando PHP 5.5, puede usar la nueva API de hash de contraseña para que sea más fácil trabajar con ella. Hay un tutorial decente en Hashing de contraseñas con PHP 5.5 Password Hashing API.
El uso de bcrypt es la práctica recomendada actualmente aceptada para cifrar contraseñas, pero una gran cantidad de desarrolladores todavía usan algoritmos más antiguos y más débiles como MD5 y SHA1. Algunos desarrolladores ni siquiera usan una sal mientras hacen hash. La nueva API hash en PHP 5.5 tiene como objetivo llamar la atención sobre bcrypt mientras oculta su complejidad.
Respondido el 29 de Septiembre de 13 a las 22:09
Alguien necesita darte algo de reputación y rápido. ¡Ese número no es bueno! :) - webnoob
Pero aún no olvide que si no está utilizando, por ejemplo, SSL, alguien puede leer su contraseña "en el camino" - dusan plavak
3
Usar bcrypt
con hash es actualmente lo mejor que se puede hacer con PHP.
no utilizan el md5
or sha1
funciones, ya que son algoritmos más antiguos y más débiles.
Desde PHP 5.5, puede usar el nuevo password_hash
, password_verify
, password_needs_rehash
y password_get_info
. Puede leer más sobre las nuevas funciones hash aquí:
La API de hashing de contraseñas [.. facilita] la creación y administración de contraseñas de manera segura.
también:
Esta extensión está disponible desde PHP 5.5.0 pero también hay una » implementación de usuario para PHP >= 5.3.7.
Respondido el 29 de Septiembre de 13 a las 22:09
Una implementación de usuario de password_hash está disponible para PHP >=5.3.7 - Mark Baker
Gracias por los comentarios chicos, arreglé mi comentario (y gracias por el chico que agregó la cita). :) - Ñame Mesicka
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php mysql sql or haz tu propia pregunta.
contraseña_hash si está en PHP >= 5.5.0, o contraseña_compat si en PHP> = 5.3.7 - Mark Baker
Si bien esto es un "duplicado", por favor siga los enlaces aquí como el nuevo
password_*
La API es el enfoque correcto para la implementación de una tienda de autenticación personalizada, a menos que, tal vez, sea Bruce. - user2246674