hash - decrypt - sha1 vs sha256
La mejor práctica para contraseñas hash: SHA256 o SHA512? (3)
Actualmente estoy usando SHA256 con una sal para cortar mis contraseñas. ¿Es mejor continuar usando SHA256 o debería cambiar a SHA512?
Cambiar a SHA512 difícilmente hará que su sitio web sea más seguro. No debe escribir su propia función de hashing de contraseña. En su lugar, use una implementación existente.
SHA256 y SHA512 son resúmenes de mensajes , nunca fueron creados para ser funciones de hashing de contraseña (o de derivación de clave). (Aunque un resumen del mensaje podría usarse como un bloque de creación para un KDF, como en PBKDF2 con HMAC-SHA1).
Una función de hash de contraseñas debe defenderse contra ataques de diccionario y tablas de arcoiris. Para defenderse de los ataques de diccionario, un esquema de hashing de contraseña debe incluir un factor de trabajo para que sea lo más lento posible.
Actualmente, la mejor opción es probablemente Argon2 . Esta familia de funciones de hashing de contraseñas ganó la competencia Password Hashing en 2015.
Si Argon2 no está disponible, la única otra función estandarizada de codificación de contraseñas o derivación de claves es PBKDF2 , que es un estándar NIST antiguo. Otras opciones, si no se requiere el uso de un estándar, incluyen bcrypt y scrypt .
Wikipedia tiene páginas para estas funciones:
Esto ya ha sido respondido razonablemente bien, si me preguntas: https://.com/questions/3897434/password-security-sha1-sha256-or-sha512
Jeff también tenía una publicación interesante sobre hash: http://www.codinghorror.com/blog/2012/04/speed-hashing.html
Tenga en cuenta que SHA512 es mucho más lento de calcular que SHA256. En el contexto de hashing seguro, esto es un activo. Más lento para calcular los hashes significa que se necesita más tiempo de procesamiento para descifrar, por lo que si puede pagar el costo de cómputo SHA512 será más seguro por esta razón.
SHA512 puede ser significativamente más rápido cuando se calcula en la mayoría de los procesadores de 64 bits que SHA256 en matemáticas de 32 bits, una operación que a menudo es un poco más lenta.