SHA-256 vs SHA-512: ¿qué función de hash elegir?
SHA-256 y SHA-512 pertenecen ambas a la familia SHA-2, diseñada por la NSA y estandarizada por el NIST. Producen una huella de tamaño fijo a partir de cualquier dato y hoy se consideran seguras. La diferencia está en el tamaño de la huella, en el rendimiento según la arquitectura y en algunos detalles de seguridad. Veamos cuál elegir y por qué.
La familia SHA-2
SHA-2 agrupa varias variantes (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) que comparten la misma estructura pero difieren en el tamaño de las palabras y de la huella. El número indica el tamaño de la huella en bits: SHA-256 produce 256 bits (64 caracteres hexadecimales), SHA-512 produce 512 (128 caracteres).
Puedes calcular estas huellas con nuestro generador de hash, o reconocer un algoritmo a partir de una huella con el identificador de hash. No confundir con MD5, obsoleto para la seguridad (consulta nuestra comparativa MD5 vs SHA-256).
SHA-256
SHA-256 trabaja sobre palabras de 32 bits y produce una huella de 256 bits. Es la función de hash más extendida del mundo: certificados TLS, firmas de Bitcoin, verificación de integridad de archivos, git. Su huella más corta la hace práctica para almacenar, mostrar y transmitir.
- Huella: 256 bits, 64 caracteres hexadecimales
- Palabras: 32 bits, óptima en plataformas de 32 bits y en embebidos
- Adopción: la más amplia, soporte universal
SHA-512
SHA-512 trabaja sobre palabras de 64 bits y produce una huella de 512 bits. De forma contraintuitiva, en un procesador de 64 bits moderno suele ser más rápida que SHA-256 para grandes volúmenes, porque procesa más datos por ronda. Su huella más larga ofrece además un mayor margen de seguridad.
- Huella: 512 bits, 128 caracteres hexadecimales
- Palabras: 64 bits, óptima en arquitecturas de 64 bits
- Resistencia nativa: SHA-512 no es vulnerable al ataque de extensión de longitud cuando se usan sus variantes truncadas (SHA-512/256)
Tabla comparativa
| Criterio | SHA-256 | SHA-512 |
|---|---|---|
| Tamaño de huella | 256 bits (64 hex) | 512 bits (128 hex) |
| Tamaño de las palabras | 32 bits | 64 bits |
| Velocidad en CPU de 64 bits | Buena | A menudo superior |
| Velocidad en 32 bits / embebido | Superior | Más lenta |
| Margen de seguridad | Muy alto | Aún superior |
| Extensión de longitud | Vulnerable | Vulnerable (salvo variantes truncadas) |
| Adopción | Universal | Amplia |
Rendimiento
El rendimiento depende de la arquitectura. En un servidor o portátil de 64 bits, SHA-512 puede superar a SHA-256 entre un 20 y un 50 % en archivos grandes, porque procesa bloques más grandes por iteración. En un microcontrolador de 32 bits o un entorno limitado, SHA-256 recupera la ventaja.
En la práctica, para entradas pequeñas (una contraseña, un identificador), la diferencia es insignificante. Solo se vuelve medible en volúmenes grandes o caudales elevados.
Cuándo elegir una u otra
Elegir SHA-256 cuando
- Buscas la máxima compatibilidad y un formato compacto
- Apuntas a embebidos, IoT o plataformas de 32 bits
- Verificas la integridad de archivos o firmas certificados
- Una huella corta facilita la visualización y el almacenamiento
Elegir SHA-512 cuando
- Haces hash de grandes volúmenes en servidores de 64 bits
- Quieres el mayor margen de seguridad posible
- Usas SHA-512/256 para resistir la extensión de longitud manteniendo 256 bits
Importante: ninguna de las dos es adecuada para el hash de contraseñas. Para eso, usa bcrypt o Argon2, diseñados para ser lentos y con sal.
Recomendación
Para un uso general, SHA-256 es la opción por defecto: universalmente soportada, compacta, ampliamente segura. Opta por SHA-512 si haces hash de grandes volúmenes en hardware de 64 bits o si quieres un margen de seguridad adicional. Y para almacenar contraseñas, recurre a una función dedicada como Argon2id, nunca a SHA-2 por sí solo.
Preguntas frecuentes
¿Es SHA-512 más seguro que SHA-256?
SHA-512 ofrece un margen de seguridad teórico superior gracias a su huella más larga, pero SHA-256 ya está ampliamente fuera del alcance de los ataques actuales. Para la práctica totalidad de los usos, ambas se consideran seguras.
¿Por qué SHA-512 puede ser más rápido que SHA-256?
Porque maneja palabras de 64 bits y procesa bloques más grandes por ronda. En un procesador de 64 bits nativo, eso compensa el sobrecoste y lo hace a menudo más rápido en grandes volúmenes. En 32 bits, es al revés.
¿Puedo hacer hash de contraseñas con SHA-256 o SHA-512?
No, sería un error. Estas funciones son rápidas, por lo que son fáciles de atacar por fuerza bruta. Usa bcrypt o Argon2id, que son deliberadamente lentos e integran una sal.
¿Qué es SHA-512/256?
Es SHA-512 cuya huella se trunca a 256 bits, con valores de inicialización diferentes. Se obtiene una huella de 256 bits, la velocidad de SHA-512 en 64 bits y una resistencia nativa al ataque de extensión de longitud.