Nuevo en seguridad, ¿es php password_hash () lo suficientemente bueno?

9

Esta es la primera vez que tengo que manejar información de personal y quiero asegurarme de que tengo una buena cantidad de seguridad. Estaré almacenando los correos electrónicos y las contraseñas de los usuarios para sus cuentas en una tabla MySQL, así que me preguntaba si la función password_hash () es suficiente para el hashing.

Por ejemplo, ¿esta sería una cantidad aceptable de seguridad para almacenar contraseñas ?:

$password = password_hash($password, PASSWORD_BCRYPT);

Luego compararía las contraseñas con hash cuando un usuario intenta iniciar sesión para verificar. Además, debido a que no necesito los correos electrónicos para fines de contacto, también se podrían modificar.

    
pregunta user38230 30.01.2014 - 22:55
fuente

1 respuesta

8

Usar bcrypt es un buen comienzo; esa es la opción recomendada (o al menos una de las opciones recomendadas). La documentación parece indicar que PHP finalmente hace las cosas correctamente . Asegúrese de que su versión de PHP es al menos 5.5.0. No intente jugar con las sales: de forma predeterminada, la función generará un salt aleatorio cuando sea necesario, y esa es la forma correcta de hacerlo, así que deje que haga su trabajo.

También deberías intentar modificar la opción "costo". Para bcrypt, el costo es un valor que va de 4 a 31; cada incremento significa que el hashing de la contraseña es dos veces más costoso, tanto para su servidor como para el atacante. En la práctica, desea hacer que el valor sea tan alto como sea posible, dada la potencia de su servidor, la carga promedio, la carga máxima y la máxima paciencia del usuario: esto le dará la mejor seguridad que puede esperar.

(Tenga en cuenta que dije "lo mejor", no "bueno".)

Si desea comprender los conceptos subyacentes para el buen hashing de contraseña y por qué bcrypt es una buena opción, comience aquí .

    
respondido por el Tom Leek 30.01.2014 - 23:20
fuente

Lea otras preguntas en las etiquetas