¿Cuál es la mejor alternativa al algoritmo Md5 para PHP para cifrar datos de usuario como contraseñas y otros datos seguros, almacenados en bases de datos MySQL?Md5 ¿Alternativa en PHP?
Respuesta
SHA512 no es una opción terrible. Pero no pasará mucho tiempo antes de que se resquebraje para la mayoría de las contraseñas. Tome Jeff's Advice. Use bcrypt o PBKDF2. Son resistentes a EC2 u otras técnicas de procesamiento paralelo. Probablemente no sea inmune, pero resistente.
La razón por la cual un mejor hash no es mejor en este caso es ABC
en MD5 se convierte en un valor y ABC
en SHA512 se convierte en un valor. El cálculo de todas las contraseñas de 3 letras es actually easier for SHA512 than it was for MD5. La clave es ser duro de hacer. Eso significa un hash lento, uno que usa mucha RAM, y/o uno que no se puede hacer fácilmente en EC2.
La mejor opción es NO usar contraseñas solo nunca más. Decida si el inicio de sesión realmente es necesario para su sitio, y si lo es, intente utilizar primero un proveedor de terceros. Si esa no es una opción, considere una contraseña + token de RSA. Solo use una contraseña sola si no tiene otras opciones viables.
Al enviar una contraseña, la clave es hash (contraseña + sal) y la sal debe ser única por usuario, y también debe ser difícil o imposible de adivinar. El uso del nombre de usuario cumple los primeros criterios y es mejor que no tener sal o la misma sal para cada usuario, , pero una sal aleatoria única para cada usuario es una mejor opción.Lo ideal sería una base de datos separada, si no la ubicación, con sus propias credenciales. También debe tener una clave no en el nombre de usuario, sino en el user_id o incluso un hash del user_id. Desea que la base de datos sea a prueba de inyección SQL. Aceptar una entrada del usuario que no es hash es una buena manera de hacerlo. Y sería inteligente dejar que la consulta en sí hiciera el hash. ¿Lento? Sí, y eso también es algo bueno.
La sal en sí debe contener todos los datos difíciles de predecir que puede obtener. Nombre de usuario + ID de usuario + Marca de tiempo + basura de dev/urandom + el último tweet con la palabra taco en él. Más tiempo, mejor. SHA512 es una buena elección de hash aquí.
Resumen: hash = bcrypt (contraseña + sal), salt = sha512 (username + user_id + timestamp + microtimestamp + bits dev/urandom + otro ruido).
Si todavía está preocupado después de todo eso. Siéntase libre de SHA512 la contraseña cifrada. Ganarás la fuerza de SHA512, que cuando se agrieta solo revela una fuerza mucho más dura a la fuerza bruta hash cifrada.
Puede usar hash de esta manera, tiene muchos algoritmos para copiar sus datos.
hash('sha256', $data);
MD5 ya no se recomienda. La mayoría de las instalaciones de php incluyen la extensión hash
. La mejor opción para una función hash sería SHA-512. Puede utilizar SHA-512 con la siguiente función:
<?php
function sha512($string) {
return hash('sha512', $string);
}
?>
Hay otras alternativas con tamaños más pequeños de salida si lo desea, como SHA-256
o RIPEMD-160
.
Actualización: Al leer su pregunta actualizada, sugiero la función php crypt.
Falso. sha384 es más seguro: http://en.wikipedia.org/wiki/SHA_hash_functions –
Más seguro que 'SHA-256', sí. Más seguro que 'SHA-512', no. ¿Dónde leíste esto? –
Pruebe el hash de funciones PHP() http://php.net/manual/en/book.hash.php
código Ejemplo:
$hash = hash('SHA512', $pass);
Esto convierte a esta:
SHA512("The quick brown fox jumps over the lazy dog")
En:
0x07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
Más información:http://en.wikipedia.org/wiki/SHA-2
- 1. ¿Una alternativa más rápida a MD5?
- 2. PHP md5 explicó
- 3. md5 con Android y PHP
- 4. Java md5, el modo PHP
- 5. PHP md5() da salida diferente a continuación, MySQL md5
- 6. PHP date_parse_from_format() alternativa en PHP 5.2
- 7. PHP getallheaders alternativa
- 8. PHP flock() alternativa
- 9. PHP alternativa al trac?
- 10. ¿Alternativa a PHP QuickForm?
- 11. MD5 hash discrepancia entre Python y PHP?
- 12. cifrado php más corto que md5?
- 13. Protección con contraseña PHP: md5 a sha512
- 14. ¿Una alternativa a php tidy?
- 15. Alternativa al "encabezado" para redirecciones en PHP
- 16. Una buena alternativa a eregi() en PHP
- 17. Hash MD5 no coincide en C# y PHP
- 18. ¿Por qué el md5 de PHP es diferente del md5 de OpenSSL?
- 19. Conseguir que el MD5 de Oracle coincida con el MD5 de PHP
- 20. Alternativa a crypt()
- 21. hash MD5 es diferente
- 22. a grep hashes MD5
- 23. Alternativa de Visual Studio para PHP
- 24. algoritmo MD5 php que da mismo resultado que C#
- 25. PHP alternativa para el tejido de Python
- 26. clase de diccionario PHP? o alternativa?
- 27. PDFlib para php, ¿hay alguna alternativa?
- 28. ¿Para qué es md5()?
- 29. Relleno en MD5 Hash Algorithm
- 30. Digest :: MD5 en Ruby 1.9.3
md5 hackeado, use sha1 –
whirlpool funciona bien. Deberías decir lo que estás haciendo con eso. – Brad
Depende de para qué lo va a usar. Para cosas hash para buscar duplicados, ¡MD5 es excelente! –