SHA-256 y SHA-512 son ambos hashes seguros de la familia SHA-2, pero con longitud de salida distinta. SHA-256 produce 256 bits (64 caracteres) y SHA-512, 512 bits (128 caracteres). En ninguno de los dos se conocen hasta hoy ataques prácticos.
La diferencia clave está en la unidad de operación interna. SHA-256 opera con palabras de 32 bits y SHA-512, con palabras de 64 bits. Por eso en las CPU de 64 bits SHA-512 puede llegar a ser incluso más rápido, mientras que en entornos de 32 bits SHA-256 es más ventajoso.
En cuanto al margen de seguridad, SHA-512 ofrece un hash más largo, pero para la mayoría de los usos los 256 bits de SHA-256 ya son suficientes. Cuanto más largo es el hash, mayor es el coste de almacenamiento y transmisión, así que sin una necesidad especial SHA-256 es el valor predeterminado más práctico.
En resumen, por lo general SHA-256, y SHA-512 cuando necesitas el máximo rendimiento en servidores de 64 bits o un amplio margen de seguridad. SHA-384 es una variante que trunca SHA-512 para evitar los ataques de extensión de longitud, y conviene tenerla en cuenta junto a ellas en certificados y similares.