password net encrypt desencriptar php mysql

net - El mejor algoritmo hash para usar en PHP/MYSQL



php sha512 encrypt (7)

  1. El pensamiento actual es usar un hash lento. Esto hace que los "forzados brutos" pasen mucho tiempo generando todos esos intentos.

  2. Mucho más inteligente aún es hacer un seguimiento de las solicitudes de URI por IP y bloquearlas con una explicación cuando 5 intentos de inicio de sesión fallan desde la misma IP en un período determinado de 5 minutos.

  3. Bank-smart aún es hacer el # 1, # 2 y también requiere un desafío de pase secundario una vez que el primero tenga éxito. La falla triple en el segundo desafío resulta en un bloqueo.

El nivel 3 de seguridad es muy, muy fuerte. Probablemente demasiado fuerte.

¿Cuál es el mejor algoritmo recomendado para cifrar contraseñas en php / mysql?


Aquí hay un artículo decente: respuesta corta, usa crypt() y asegúrate de usar salt .


Hay muchas opciones: consulte la documentación de hash de php para ver la lista completa.

La velocidad no es una ventaja, por lo que usar sha-512 o hidromasaje es una buena idea. No es necesario que almacene toda la longitud del hash en mysql, por ejemplo, podría hacer algo como un remolino, que tiene 128 caracteres de longitud, y almacenar solo los primeros 64 caracteres por eficiencia.



Miki725 plantea puntos interesantes con chargen.matasano.com/chargen/2007/9/7/… Aunque sha512 es mejor que md5 criptográficamente, bcrypt los supera a todos porque es más lento y, por lo tanto, cuesta más atacar. Más lento no es malo. Internet ya es lento, es millones de veces más lento que el caché de la CPU y miles de veces más lento que el disco. Realizar comprobaciones de contraseñas requiere 200 ms en lugar de 1 ms para calcular, no va a molestar a los usuarios.

Lo más importante es que no se olvide de usar un nonce que se genere de forma aleatoria y diferente para cada usuario.

bcrypt será subóptimo en PHP porque php se interpreta y esto le da al atacante alguna ventaja, pero hay una forma de hacerlo en este artículo de .


SHA-512 con una sal es una forma buena y segura de codificar una contraseña. Si eso no está disponible, tiene SHA-1, pero su seguridad se considera un poco débil en estos días, especialmente si no usa sal.


Yo usaría la función crypt() php porque no habrá ninguna forma de descifrar la contraseña. Cuando necesito verificar la contraseña recién ingresada, solo tengo que cifrar esa y comparar los dos resultados