Generador de Hash SHA-256

Genera hash SHA-256 de cualquier texto

Texto de entrada

Se ejecuta localmente · Es seguro pegar secretos

Hash SHA-256

El hash SHA-256 aparecerá aquí…

¿Qué es el hash SHA-256?

SHA-256 (Secure Hash Algorithm de 256 bits) es una función hash criptográfica de la familia SHA-2, publicada por el NIST en 2001 como parte de FIPS 180-2 (actualizada en FIPS 180-4). Dado cualquier dato de entrada — un solo carácter, un archivo de varios gigabytes o una cadena vacía — SHA-256 produce un resumen fijo de 256 bits (32 bytes), representado convencionalmente como 64 caracteres hexadecimales. SHA-256 es la función hash más ampliamente utilizada en sistemas en producción hoy en día, y es la base de las cadenas de certificados TLS, el mecanismo de prueba de trabajo de Bitcoin, la Integridad de Subrecurso (SRI) y los flujos de firma de código.

SHA-256 es una función unidireccional: calcular un hash a partir de una entrada es rápido (cientos de megabytes por segundo en hardware moderno), pero revertir el proceso —encontrar una entrada que produzca un hash determinado— es computacionalmente inviable. Esta propiedad, llamada resistencia a preimagen, hace que SHA-256 sea adecuado para el hash de contraseñas (combinado con una sal y una función de derivación de clave), firmas digitales y verificación de integridad de datos. A diferencia de MD5 y SHA-1, no se ha demostrado ningún ataque de colisión o preimagen contra SHA-256 completo.

La familia SHA-2 incluye seis variantes: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 y SHA-512/256. SHA-256 opera con palabras de 32 bits y 64 rondas por bloque, optimizado para procesadores de 32 bits. SHA-512 usa palabras de 64 bits y 80 rondas, lo que puede ser más rápido en plataformas de 64 bits. Para la mayoría de las aplicaciones donde un resumen de 256 bits es suficiente, SHA-256 sigue siendo la recomendación predeterminada del NIST, el IETF y el CA/Browser Forum.

¿Por qué usar un generador SHA-256 online?

Generar un hash SHA-256 normalmente requiere un comando de terminal o unas pocas líneas de código. Esta herramienta basada en el navegador te permite calcular resúmenes SHA-256 sin instalar nada, cambiar de contexto ni escribir un script.

Hash instantáneo en tu navegador
Pega o escribe cualquier texto y obtén el resumen SHA-256 de inmediato. La Web Crypto API gestiona el cálculo de forma nativa, sin necesidad de ninguna librería JavaScript adicional.
🔒
Procesamiento con privacidad garantizada
Tu entrada nunca abandona tu dispositivo. Todo el hash se ejecuta localmente mediante la Web Crypto API integrada en el navegador. No se transmite ningún dato a ningún servidor.
📋
Formatos de salida listos para copiar
Obtén el hash en hexadecimal en minúsculas o mayúsculas con un clic. Útil para comparar sumas de verificación de gestores de paquetes, pipelines de CI o documentación.
🔍
Verificación de valores de referencia
Verifica rápidamente resúmenes SHA-256 de páginas de descarga, manifiestos SBOM o registros de auditoría sin abrir una terminal ni escribir código desechable.

Casos de uso de SHA-256

Desarrollador frontend — Integridad de Subrecurso
Calcula el hash SHA-256 de un script o hoja de estilos alojado en una CDN para rellenar el atributo integrity en las etiquetas script y link, protegiendo contra la manipulación de la cadena de suministro.
Ingeniero backend — Firma de solicitudes de API
Muchas APIs (AWS Signature V4, webhooks de Stripe) requieren hashes SHA-256 de los payloads de las solicitudes. Usa esta herramienta para calcular hashes de referencia durante el desarrollo y la depuración.
DevOps — Verificación de artefactos
Verifica las sumas de verificación SHA-256 de binarios descargados, imágenes base de Docker o plugins de proveedores de Terraform antes de desplegar en infraestructura de producción.
Ingeniero de QA — Validación de vectores de prueba
Compara las salidas SHA-256 con los vectores de prueba del NIST (ejemplos de FIPS 180-4) para confirmar que tu implementación de hash gestiona correctamente los casos límite.
Ingeniero de datos — Huellas digitales a nivel de fila
Hashea claves compuestas o campos con información personal con SHA-256 para crear huellas digitales deterministas e irreversibles para la deduplicación o seudonimización en pipelines de datos.
Estudiante — Trabajos prácticos de criptografía
Experimenta con SHA-256 para observar el efecto avalancha: cambia un solo carácter en la entrada y observa cómo toda la salida de 64 caracteres cambia de forma impredecible.

Comparación de variantes de la familia SHA-2

SHA-256 pertenece a la familia SHA-2 definida en FIPS 180-4. Cada variante equilibra el tamaño del resumen, las características de rendimiento y el margen de seguridad. La tabla siguiente compara todas las variantes de SHA-2 que probablemente encuentres.

VarianteTamaño del resumenLongitud hexTamaño en bytesRecomendado para
SHA-256256 bits64 hex chars32 bytesTLS, blockchain, code signing, JWTs, SRI
SHA-224224 bits56 hex chars28 bytesTruncated SHA-256 — rare, specific compliance
SHA-384384 bits96 hex chars48 bytesGovernment / CNSS, higher collision margin
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC with large keys
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-256 vs. SHA-1 vs. MD5 vs. SHA-3

La elección del algoritmo hash correcto depende de tus requisitos de seguridad y las restricciones de compatibilidad. SHA-256 ocupa el punto de equilibrio práctico: es seguro, está universalmente soportado (incluida la Web Crypto API) y es suficientemente rápido para la mayoría de las cargas de trabajo. La tabla comparativa siguiente cubre las propiedades más relevantes a la hora de seleccionar una función hash.

PropiedadSHA-256SHA-1MD5SHA-3-256
Digest size256 bits (64 hex)160 bits (40 hex)128 bits (32 hex)256 bits (64 hex)
Security statusSecureBroken (2017)Broken (2004)Secure
Collision resistance2^128 operationsPractical attackPractical attack2^128 operations
Block size512 bits512 bits512 bits1600 bits (sponge)
Rounds64806424
StandardFIPS 180-4FIPS 180-4RFC 1321FIPS 202
Web Crypto APIYesYesNoNo
Primary use todayTLS, blockchain, SRILegacy git onlyNon-security checksumsBackup standard

Cómo funciona SHA-256 internamente

SHA-256 procesa la entrada en bloques de 512 bits (64 bytes) mediante una construcción de Merkle–Damgård. El algoritmo inicializa ocho palabras de estado de 32 bits (H0–H7) derivadas de las partes fraccionarias de las raíces cuadradas de los primeros ocho números primos. Cada bloque pasa por 64 rondas de mezcla que utilizan operaciones bit a bit (AND, XOR, NOT, rotación a la derecha, desplazamiento a la derecha) y 64 constantes de ronda derivadas de las raíces cúbicas de los primeros 64 números primos.

Input: "hello world"
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
(256 bits = 32 bytes = 64 hex characters)
PasoDescripción
PaddingAppend a 1-bit, then zeros until the message length is 448 mod 512. Append the original message length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
Message scheduleExpand each 16-word (32-bit) block into 64 words using sigma functions with right-rotate and right-shift operations.
CompressionProcess 64 rounds per block using Ch, Maj, and two Sigma functions with 64 round constants derived from cube roots of the first 64 primes.
OutputConcatenate the eight 32-bit state words (H0-H7) into a 256-bit (32-byte) digest, rendered as 64 hexadecimal characters.

El efecto avalancha garantiza que cambiar un solo bit en la entrada modifica aproximadamente el 50% de los bits de salida. Esta propiedad, combinada con una resistencia a colisiones de 2^128, es la razón por la que SHA-256 sigue siendo la recomendación base para aplicaciones sensibles a la seguridad en 2026.

Ejemplos de código SHA-256

SHA-256 está disponible de forma nativa en todos los lenguajes y runtimes principales. La Web Crypto API lo proporciona en los navegadores sin necesidad de ninguna librería. Los ejemplos siguientes muestran patrones de uso reales, incluyendo el manejo de entrada Unicode y el hash de archivos.

JavaScript (Web Crypto API)
// Works in all modern browsers and Node.js 18+
async function sha256(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-256', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha256('hello world')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha256').update('hello world').digest('hex')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
Python
import hashlib

# Basic SHA-256 hash
result = hashlib.sha256(b'hello world').hexdigest()
print(result)  # → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

# Hash a string (encode to bytes first)
text = 'café ☕'
hashlib.sha256(text.encode('utf-8')).hexdigest()
# → "3eb53e00aa1bb4b1e8aab1ab38e56e6b8fb0b20e1cf7e1d19f36e4fad2537445"

# Hash a file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
    sha = hashlib.sha256()
    for chunk in iter(lambda: f.read(8192), b''):
        sha.update(chunk)
    print(sha.hexdigest())
Go
package main

import (
    "crypto/sha256"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha256.Sum256(data)
    fmt.Printf("%x\n", hash)
    // → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
}
CLI (Linux / macOS)
# Using sha256sum (Linux) or shasum (macOS)
echo -n "hello world" | sha256sum
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# macOS
echo -n "hello world" | shasum -a 256
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# Verify a file checksum
echo "b94d27b...  myfile.bin" | sha256sum -c
# → myfile.bin: OK

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha256
# → SHA2-256(stdin)= b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

Preguntas frecuentes

¿SHA-256 sigue siendo seguro?
Sí. A partir de 2026, no se ha encontrado ningún ataque de colisión, preimagen o segunda preimagen práctico contra SHA-256 completo. El NIST, el CA/Browser Forum y el IETF siguen recomendando SHA-256 para certificados TLS, firma de código y firmas digitales. La resistencia teórica a colisiones es de 2^128 operaciones, muy por encima de los límites computacionales actuales.
¿Cuál es la diferencia entre SHA-256 y SHA-2?
SHA-2 es el nombre de la familia que agrupa seis funciones hash: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 y SHA-512/256. SHA-256 es el miembro más utilizado. Cuando la documentación dice «usar SHA-2», casi siempre se refiere específicamente a SHA-256, salvo que se requiera un resumen más largo.
¿Puede revertirse o descifrarse SHA-256?
No. SHA-256 es una función hash unidireccional, no un cifrado. No existe ninguna clave ni proceso de descifrado. La única forma de encontrar la entrada original es mediante un ataque de fuerza bruta o por diccionario, lo cual es computacionalmente inviable para entradas suficientemente complejas. Para entradas cortas o predecibles (como contraseñas comunes), existen tablas rainbow precomputadas, por lo que el hash de contraseñas siempre debe usar una sal y una función KDF dedicada como bcrypt o Argon2.
¿Cómo se compara SHA-256 con SHA-3?
SHA-3 (Keccak, FIPS 202) utiliza una estructura interna completamente diferente (construcción esponja) a la de SHA-256 (Merkle–Damgård). Tanto SHA-256 como SHA-3-256 producen un resumen de 256 bits y ofrecen una resistencia a colisiones equivalente. SHA-3 fue diseñado como alternativa en caso de que SHA-2 fuera vulnerado, pero SHA-2 sigue sin estar comprometido. SHA-256 tiene un soporte de runtime más amplio — cabe destacar que la Web Crypto API soporta SHA-256 pero no SHA-3.
¿Es SHA-256 adecuado para el hash de contraseñas?
No directamente. Un hash SHA-256 sin procesar de una contraseña es vulnerable a ataques de fuerza bruta y rainbow tables porque SHA-256 está diseñado para ser rápido. Para el almacenamiento de contraseñas, utiliza una función de derivación de clave dedicada como bcrypt, scrypt o Argon2id, que añaden una sal y un factor de trabajo configurable para ralentizar los ataques.
¿Por qué Bitcoin usa SHA-256 doble?
Bitcoin calcula SHA-256(SHA-256(datos)) (conocido como hash256) para las cabeceras de bloque y los IDs de transacción. La doble aplicación protege contra ataques de extensión de longitud, en los que un atacante añade datos a un mensaje y calcula un hash válido sin conocer la entrada original. Esta es una propiedad de los hashes de Merkle–Damgård que un SHA-256 de un solo paso no previene.
¿Qué es la Integridad de Subrecurso (SRI) y cómo se relaciona con SHA-256?
SRI es una especificación del W3C que permite a los navegadores verificar que un recurso obtenido (script, hoja de estilos) no ha sido manipulado. Se añade un atributo integrity que contiene un hash SHA-256 (o SHA-384/SHA-512) codificado en Base64 del contenido esperado del archivo. El navegador calcula el hash del archivo descargado y se niega a ejecutarlo si los hashes no coinciden. SHA-256 es el algoritmo mínimo soportado por SRI.