SHA-256 es una función hash criptográfica que produce un resumen de 256 bits (32 bytes) de cualquier entrada. Pertenece a la familia SHA-2, diseñada por la NSA y publicada por el NIST en 2001 como parte del estándar FIPS 180-2. Es la función hash más usada del mundo en 2026: la base de TLS moderno, de Bitcoin, de firmas digitales, de verificación de integridad de archivos, de JWT con algoritmo HS256, de Git para identificar commits y de prácticamente cualquier protocolo que necesite verificar datos sin revelar el contenido. Sigue siendo segura y recomendada por NIST, IETF y la mayoría de organismos internacionales para uso general.
Esta guía explica qué es exactamente SHA-256, cómo funciona internamente (Merkle-Damgård con 64 rondas sobre bloques de 512 bits), las cuatro propiedades criptográficas que la hacen útil, los seis casos de uso reales que aparecen en cualquier sistema moderno, la comparativa práctica con SHA-1 (rota desde 2017), SHA-3 (alternativa formal) y BLAKE3 (la opción moderna no NIST), errores comunes en aplicaciones reales (especialmente almacenamiento de contraseñas) y cuándo conviene migrar a algo distinto.
Qué es SHA-256
SHA-256 es una función hash criptográfica que toma una entrada de cualquier tamaño y devuelve siempre un resumen de 256 bits (representado habitualmente como 64 caracteres hexadecimales). Las siglas vienen del inglés Secure Hash Algorithm 2, variante de 256 bits. Forma parte de la familia SHA-2, que incluye también SHA-224, SHA-384, SHA-512, SHA-512/224 y SHA-512/256.
Ejemplo concreto:
SHA-256("hola mundo") = 0b894166d3336435c800bea36ff21b29eaa801a52f584c006c49289a0dcf6e2f
SHA-256("hola Mundo") = 00256edc2cabb60f547b376373e936ac4a5ba78a0ca00960eea3703ac2a707c5
Una sola letra distinta produce un resumen completamente diferente: la propiedad de "efecto avalancha".
Lo que aporta operativamente:
- Verificación de integridad de archivos, mensajes, descargas.
- Identificadores únicos para datos arbitrarios (Git commits, contenido CDN, IPFS).
- Construcción de firmas digitales combinada con criptografía asimétrica (RSA, ECDSA).
- Prueba de trabajo en sistemas blockchain.
- Compromiso criptográfico: publicar el hash de un valor demuestra que se conocía antes de revelarlo.
Las cuatro propiedades que la hacen útil
Una función hash criptográfica seria cumple cuatro propiedades:
Determinismo
La misma entrada produce siempre la misma salida. Sin esto, no servirían para verificación.
Resistencia a preimagen
Dado un hash H, es computacionalmente inviable encontrar una entrada m tal que SHA-256(m) = H. La única forma conocida es fuerza bruta, que para 256 bits es prácticamente imposible incluso con hardware especializado.
Resistencia a segunda preimagen
Dado un mensaje m1, es inviable encontrar m2 ≠ m1 tal que SHA-256(m1) = SHA-256(m2). Es la propiedad que impide falsificar firmas modificando el documento.
Resistencia a colisiones
Es inviable encontrar dos mensajes cualesquiera m1 y m2 tales que SHA-256(m1) = SHA-256(m2). Más débil que la segunda preimagen, pero también más fácil de atacar (paradoja del cumpleaños: 2^128 operaciones en lugar de 2^256). Para SHA-256, esos 2^128 siguen siendo inalcanzables con tecnología actual.
A esto se suman dos propiedades más prácticas:
- Efecto avalancha: un cambio mínimo en la entrada produce cambios masivos en el hash.
- Tamaño fijo de salida: 256 bits siempre, independientemente del tamaño de entrada.
Cómo funciona internamente
SHA-256 sigue la construcción Merkle-Damgård. Los pasos simplificados:
- Padding. La entrada se completa con bits para que su longitud sea múltiplo de 512. Se añade un bit 1, luego ceros, y al final 64 bits que indican la longitud original.
- División en bloques de 512 bits.
- Inicialización del estado interno con 8 valores constantes de 32 bits (
H0aH7) derivados de las raíces cuadradas de los primeros 8 números primos. - 64 rondas por bloque. Cada ronda mezcla el estado con el bloque actual usando operaciones lógicas (AND, OR, XOR, NOT), rotaciones, sumas modulares y una constante propia derivada de las raíces cúbicas de los primeros 64 primos.
- Compresión. Tras procesar cada bloque, el resultado se mezcla con el estado anterior.
- Salida. Tras procesar todos los bloques, los 8 valores finales del estado se concatenan formando el hash de 256 bits.
El diseño está pensado para ser eficiente en hardware general y resistente a las técnicas conocidas de criptoanálisis.
Seis casos de uso reales
TLS y certificados X.509
SHA-256 firma certificados emitidos por CAs públicas y privadas. El campo Signature Algorithm en un certificado X.509 moderno suele decir sha256WithRSAEncryption o ecdsa-with-SHA256. Cuando un navegador conecta a https://secra.es, valida la cadena de certificados verificando firmas SHA-256. Más contexto en la guía de PKI.
Bitcoin y blockchain
Bitcoin usa SHA-256 dos veces (SHA-256(SHA-256(x))) para casi todo: hash de bloques (proof of work), hash de transacciones (TXID), construcción del árbol Merkle de transacciones, derivación de direcciones P2PKH. Mining ASICs son hardware específicamente diseñado para ejecutar miles de millones de operaciones SHA-256 por segundo.
JWT con HS256 y RS256
JSON Web Tokens firmados con HMAC-SHA256 (HS256) o RSA-SHA256 (RS256). HS256 firma con clave compartida; RS256 firma con clave privada y verifica con clave pública. SHA-256 es el motor criptográfico debajo de la firma. Más contexto en la guía de JWT y seguridad.
Integridad de descargas
Las páginas oficiales de proyectos open source publican el hash SHA-256 del binario descargable. El usuario verifica que el archivo no se ha alterado en tránsito o en el mirror calculando el SHA-256 local y comparando.
$ sha256sum descarga.iso
0b894166d3336435c800bea36ff21b29eaa801a52f584c006c49289a0dcf6e2f descarga.iso
Git y sistemas de control de versiones
Git identifica cada commit, blob y árbol con un hash SHA-1 (legacy) y desde Git 2.42 (2023) opcionalmente SHA-256. Cada commit referencia su árbol y sus padres por hash. La integridad de toda la historia del repositorio depende de esa cadena.
Compromiso criptográfico y prueba de existencia
Publicar el hash de un documento es prueba pública de que se conocía antes de la fecha de publicación, sin revelar el contenido. Sistemas de notarización digital, blockchain pública, sellos de tiempo cualificados (TSA bajo eIDAS) usan SHA-256 como base.
SHA-1, SHA-256, SHA-3 y BLAKE3
Comparativa práctica para entender qué usar en 2026.
SHA-1 (1995, 160 bits, ROTA)
Diseñada por NSA, publicada por NIST. Considerada segura hasta 2005, cuando aparecieron las primeras advertencias. En 2017 el equipo SHAttered de Google y CWI Amsterdam publicó la primera colisión real (dos PDFs distintos con mismo SHA-1). Desde entonces, NIST y la industria han retirado SHA-1 de todos los usos críticos: TLS la rechaza desde 2017, las CAs públicas no emiten certificados con SHA-1, Git la mantiene por compatibilidad mientras migra.
No usar para nada nuevo. Sustituir donde aparezca legacy.
SHA-256 (2001, 256 bits, SEGURA)
La familia SHA-2 (224, 256, 384, 512) sigue siendo segura. NIST la recomienda. La industria la usa por defecto para casi todo. SHA-256 es el sweet spot entre seguridad y rendimiento; SHA-512 es algo más rápida en sistemas 64-bit pero produce hash más largo que no siempre se necesita.
Recomendada para uso general en 2026.
SHA-3 / Keccak (2015, 224/256/384/512 bits)
Diseñada por equipo independiente (Bertoni, Daemen, Peeters, Van Assche). NIST la estandarizó en FIPS 202 como alternativa formal a SHA-2 en caso de que apareciera un fallo grave en SHA-2. Construcción interna diferente (esponja en lugar de Merkle-Damgård), lo que la hace resistente a ataques que afectaran a SHA-2.
No reemplaza a SHA-2 en producción. Coexiste como opción adicional. Más lenta que SHA-2 en CPU sin instrucciones específicas.
Usar cuando se requiera diversidad criptográfica o por compliance específica.
BLAKE2 y BLAKE3 (2012/2020)
Diseñadas por Aumasson y otros. No estandarizadas por NIST pero ampliamente adoptadas en software moderno. BLAKE3 (2020) es notablemente más rápida que SHA-2 en CPU moderno, soporta paralelización masiva y árboles Merkle nativos. Se usa en Cloudflare, Solana, IPFS, rsync moderno, herramientas de backup.
Opción técnica superior en rendimiento; menos aceptada en entornos NIST-regulados.
Errores comunes en aplicaciones reales
Lo que aparece en auditorías y pentests donde SHA-256 se usa mal.
Almacenar contraseñas con SHA-256 puro
Error de manual. SHA-256 sin más es demasiado rápida: una GPU moderna calcula miles de millones de hashes por segundo, lo que permite ataques de fuerza bruta y diccionario rapidísimos contra una base de datos filtrada.
La forma correcta es usar funciones de derivación de contraseñas diseñadas para ser lentas y costosas en memoria: Argon2id (recomendada en 2026), scrypt, bcrypt o PBKDF2 con muchos miles de iteraciones. Todas internamente usan funciones hash, pero añaden salt único por usuario y coste computacional controlado.
Salt ausente o reutilizado
Sin salt, dos usuarios con la misma contraseña tienen el mismo hash, lo que permite rainbow tables y revela coincidencias. El salt debe ser único por usuario, aleatorio, suficientemente largo (16+ bytes) y almacenarse junto al hash (no es secreto).
Truncar el hash a menos bits
Algunos diseñadores reducen los 256 bits a 64 o 128 por ahorro de almacenamiento. La resistencia a colisiones cae proporcionalmente. Para 128 bits truncados, las colisiones se vuelven viables en hardware potente. Truncar solo es aceptable cuando el modelo de amenaza lo justifica explícitamente.
Usar HMAC como simple hash
HMAC-SHA256 requiere una clave secreta para que su salida sea autenticada. Si el código guarda la clave junto al hash o la deriva de algo público, deja de aportar autenticación. HMAC bien aplicado es una herramienta excelente; mal aplicado se reduce a un hash más lento.
Comparar hashes con ==
Comparación en tiempo no constante permite timing attacks. Las librerías criptográficas modernas (crypto.subtle.timingSafeEqual en Node, hmac.compare_digest en Python, constant_time en Go) son obligatorias para comparar valores criptográficos.
Confiar en hash SHA-1 legacy
Sistemas antiguos que aún firman certificados internos con SHA-1, repositorios Git con SHA-1 sin migración, sistemas de integridad que publican checksums SHA-1. Migrar todos a SHA-256 antes de que aparezca un caso explotable.
Migración: cuándo dejar SHA-256
SHA-256 sigue siendo segura en 2026. Las situaciones que justifican migrar:
- Diversidad criptográfica requerida. Algunos marcos regulatorios o agencias de inteligencia exigen usar familias distintas en capas distintas. SHA-3 cubre este requisito.
- Rendimiento crítico. BLAKE3 ofrece varias veces mejor rendimiento en CPU moderno. Útil en streaming, deduplicación, hashes a escala (CDN, IPFS).
- Computación cuántica. Cuando los ordenadores cuánticos sean viables a escala criptográfica (no antes de 2030-2035 según consensos actuales), Grover's algorithm reducirá la resistencia efectiva de SHA-256 a la mitad (128 bits). Es seguro hoy, lo será durante años más. SHA-384 o SHA-512 dan margen adicional cuando la cuántica esté cerca.
Para uso general en aplicaciones modernas en 2026, SHA-256 no necesita migración inmediata.
Encaje con compliance
SHA-256 aparece directa o indirectamente en marcos regulatorios:
- eIDAS (Reglamento UE 910/2014 y 2024/1183). Firmas electrónicas cualificadas usan SHA-256 (o variantes superiores) como algoritmo hash de referencia.
- NIS2 (artículo 21). Medidas técnicas que incluyen cifrado y autenticación. Implementación con primitivas modernas (SHA-2, SHA-3) es exigible.
- DORA (artículo 9). ICT risk management en servicios financieros. Algoritmos criptográficos según buenas prácticas vigentes.
- ISO 27001:2022 (controles 8.24, 8.25, 8.26). Uso de criptografía, ciclo de vida del desarrollo, requisitos de seguridad de aplicaciones.
- PCI DSS v4.0 (req. 4 y 8). Algoritmos criptográficos robustos para datos de tarjeta y autenticación.
- FIPS 140-3. SHA-256 está aprobada para uso en módulos criptográficos federales estadounidenses; relevante para empresas españolas que vendan a sector público USA.
Preguntas frecuentes
¿SHA-256 ha sido rota?
No. En 2026 sigue siendo segura. No hay ataque conocido que rompa preimagen, segunda preimagen o colisión en SHA-256 con esfuerzo razonable. El mejor ataque teórico contra colisiones sigue siendo fuerza bruta (2^128 operaciones), inalcanzable con tecnología actual.
¿Cuántas combinaciones tiene un hash SHA-256?
2^256, que en notación decimal es aproximadamente 1,16 × 10^77. Es comparable al número estimado de átomos en el universo observable. Probar todas las combinaciones es físicamente imposible con tecnología clásica.
¿Diferencia entre SHA-256 y SHA-512?
Mismo diseño Merkle-Damgård pero con bloques internos distintos (SHA-256 trabaja con palabras de 32 bits, SHA-512 con 64 bits) y diferente número de rondas. SHA-512 produce hash más largo (512 bits) y es más rápida en sistemas 64-bit nativos. Para uso general, SHA-256 sigue siendo el default.
¿Puedo usar SHA-256 para contraseñas?
Solo dentro de una función de derivación de claves (KDF) como Argon2id, scrypt, bcrypt o PBKDF2. SHA-256 puro sin salt y sin iteraciones es inseguro porque las GPUs modernas calculan miles de millones por segundo.
¿Bitcoin sigue siendo seguro con SHA-256?
Sí. El uso de SHA-256 doble en Bitcoin no se ha visto comprometido. Lo que sí ha cambiado es la dificultad de mining: el hardware especializado (ASICs) ha hecho casi imposible que un equipo normal contribuya. La criptografía sigue siendo robusta; lo que cambia es la economía del mining.
¿Qué pasa con SHA-256 cuando llegue la computación cuántica?
El algoritmo de Grover reduce la resistencia efectiva de SHA-256 contra preimagen de 256 a 128 bits, suficiente para muchos usos. La preocupación cuántica es mucho mayor con criptografía asimétrica (RSA, ECDSA), que cae con Shor's algorithm. Para hashes, SHA-384 o SHA-512 dan margen extra. La migración post-cuántica formal está en curso (NIST PQC).
¿Diferencia entre hash y cifrado?
El hash es unidireccional: a partir del hash no se recupera la entrada. El cifrado es reversible con la clave: del texto cifrado se recupera el original. Hash sirve para integridad y verificación; cifrado sirve para confidencialidad. No son intercambiables.
Recursos relacionados
- Qué es PKI: infraestructura donde los certificados se firman con SHA-256 (o variantes superiores) por defecto.
- Qué es JWT y seguridad de tokens: formato de token cuyas firmas HS256 y RS256 se apoyan en SHA-256.
- Qué es CORS: mecanismo del navegador adyacente a auth y firma de mensajes.
- Qué es Man in the Middle: vector que SHA-256 ayuda a mitigar mediante firma e integridad.
- Pentesting de aplicaciones web: donde se auditan implementaciones criptográficas en aplicaciones.
- Pentesting de APIs REST y GraphQL: auditoría de firma de tokens y validación criptográfica.
Auditoría criptográfica en Secra
En Secra revisamos uso de SHA-256 y primitivas criptográficas relacionadas como parte estándar de auditoría web y de APIs: validación de algoritmos de firma de tokens, almacenamiento de contraseñas (Argon2id vs hash puro), uso correcto de HMAC, comparación en tiempo constante, configuración de TLS con SHA-256 o superior, integración con HSM o PKI corporativa. Si tu organización tiene aplicaciones legacy con criptografía antigua, está implantando firma electrónica bajo eIDAS o nunca ha auditado el uso real de primitivas criptográficas, escríbenos a través de contacto o consulta nuestro servicio de auditoría web y móvil.
Sobre el autor
Equipo de Secra Solutions
Ethical hackers certificados OSCP, OSEP, OSWE, CRTO, CRTL y CARTE, con más de 7 años de experiencia en ciberseguridad ofensiva. Autores de los CVE-2025-40652 y CVE-2023-3512.