¿Cuál es la mejor manera de cifrar las contraseñas de los usuarios en php?

PHP tiene su propia función dedicada a contraseñas hash. A diferencia de otros algoritmos, creo que la función password_hash de PHP es un poco más segura. Verá que si intenta ingresar el texto “contraseña” en esa función, le dará resultados diferentes cada vez.

Déjame darte un ejemplo. Estoy usando este sitio [1] para cambiar la contraseña. La primera vez que da la salida

$ 2a $ 10 $ 4wkfctQUEiV / Azr.rUwiKuLom0P013gqw7e77TxSJ.OAFOyAolt.C

Y la segunda vez para la misma entrada (‘contraseña’)

$ 2a $ 10 $ ljrdNdUIP9qRgU4WhRuVcOcIAnMNFhN0UX4eOgcP / 8BMlYOhPQAiK

Lo ves. Es poco cómodo usar esto.

Luego puede verificar la contraseña con la función contraseña_verificación.

password_hash – Manual

contraseña_verificar – Manual

Notas al pie

[1] Generador PHP password_hash () implementado en PHP5 – Herramienta de contraseña

Hash sus contraseñas para protegerlos. Para agregar un mecanismo de seguridad más fuerte, use un hash salado. No use MD5 más. Recomendaría usar SHA-2.

Hash: Hash es una función unidireccional que produce una salida de longitud fija para una entrada.

Sal: una sal es un elemento aleatorio agregado a su contraseña que se pasa a través de la función hash para hacer que la salida sea más segura contra colisiones o ataques de fuerza bruta.

Si bien la respuesta de Andreas debería ser la definitiva, si por alguna razón no puede usar la compilación en métodos PHP y tiene que recurrir simplemente al uso de SHA-2, asegúrese de repetirla muchas veces.

Por ejemplo, hash hash el hash una y otra vez cientos de veces para agregar tiempo de procesamiento antes de obtener el hash final. El objetivo es hacer que romperlo sea lento y costoso.