¿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]

¿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.

preguntado el 29 de septiembre de 13 a las 22:09

contraseña_hash si está en PHP >= 5.5.0, o contraseña_compat si en PHP> = 5.3.7 -

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. -

2 Respuestas

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

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 or haz tu propia pregunta.