¿Qué algoritmo de hash es mejor usar para almacenar una contraseña, sha256 o sha512? [duplicar]

1

¿Qué algoritmo de hash es mejor usar para almacenar una contraseña, sha256 o sha512 ?

Sé que sha512 es más seguro que sha256 pero me preguntaba si tiene algunas desventajas o es completamente mejor que sha256 .

    
pregunta Moh 10.08.2015 - 11:01
fuente

2 respuestas

14

Para ampliar el punto que @cthulhu hace en su comentario, la respuesta correcta a esto es "nether". Los algoritmos de hash de la familia SHA2 no están diseñados para el almacenamiento de contraseñas y, a menos que no tenga más remedio que usar un algoritmo de hash de propósito general, no deben usarse.

Para citar esta respuesta las razones principales para esto son

  

Una función hash básica, incluso si es segura como una función hash, no es apropiada para el hashing de contraseñas, porque:

     
  • no tiene sal, lo que permite ataques paralelos (las tablas de Rainbow para MD5 o SHA-1 se pueden obtener de forma gratuita, ni siquiera es necesario volver a calcularlas);

  •   
  • es demasiado rápido y se acelera con los avances tecnológicos. Con una GPU reciente (es decir, un producto de consumo comercial que todos pueden comprar), la tasa de hash se cuenta en miles de millones de contraseñas por segundo.

  •   
    
respondido por el Rоry McCune 10.08.2015 - 11:33
fuente
2

De hecho, son el mismo algoritmo de hash: SHA2 , solo con dos tamaños de resumen diferentes.

Es más barato (más rápido) generar SHA256 que SHA512. Por lo tanto, desde la perspectiva de la seguridad, un atacante potencial necesitará más tiempo para generar todos los hashes SHA512 posibles para forzar una contraseña hash desde su base de datos.

Por lo tanto, puede considerar SHA512 como más seguro , pero no en términos de algoritmo utilizado, sino en términos de tiempo empleado para calcular un solo hash.

Entonces, la única desventaja obvia de SHA512 es el rendimiento, pero en las aplicaciones de ~ 99.9% no verías una diferencia, porque generalmente los programas calculan solo un hash en ese momento.

En este documento PDF en la página 3/11 puede encontrar un tabla de tiempo cuánto tiempo se tarda en generar hashes para muchos algoritmos de hash diferentes, solo para permitirle una comprensión aproximada de las diferencias entre ellos. El documento no es nuevo, por lo que el número hoy en día es más pequeño (debido al mayor poder de la computadora). Pero verás que SHA512 consume más tiempo que SHA256 de todos modos.

EDITAR: Al igual que los colegas dijeron en los comentarios a continuación: SHA no ha creado para el almacenamiento de contraseñas y, por lo tanto, no debe usarse para ello .

    
respondido por el boleslaw.smialy 10.08.2015 - 11:24
fuente

Lea otras preguntas en las etiquetas