Cómo se usa
- Escribe o pega un texto, cambia el Formato de entrada a Hexadecimal para introducir bytes o abre con Abrir archivo el archivo que quieres comprobar.
- Deja seleccionado SHA-256 y elige en Formato de salida hex (minúsculas), HEX (mayúsculas) o Base64.
- Pega la suma de verificación de la página de descarga en el campo Comparar con. Coincide significa que el archivo es idéntico.
- Copia el resultado, o copia SHA-384, SHA-512 u otro resumen de la tabla Todos los algoritmos.
¿Qué es SHA-256?
SHA-256 es el miembro más utilizado de la familia SHA-2, diseñado por la NSA y estandarizado por el NIST en 2002 en FIPS 180-2. Hoy se especifica en FIPS 180-4, y RFC 6234 recoge los mismos algoritmos con código de referencia. SHA-256 procesa bloques de 512 bits en 64 rondas de aritmética de 32 bits y genera un resumen de 256 bits: 64 caracteres hexadecimales o 44 caracteres Base64. No se conoce ningún ataque práctico de colisión ni de preimagen, y es la opción predeterminada para:
- los certificados y handshakes TLS, y la firma de código;
- Bitcoin, que aplica SHA-256 dos veces para los hashes de bloque, la prueba de trabajo y los identificadores de transacción (la suma de verificación de las direcciones Base58Check procede del mismo doble hash);
- archivos de sumas de verificación como
SHA256SUMS, los resúmenes de imágenes de contenedor (sha256:...) y Subresource Integrity.
Verificar una descarga
Abre el archivo descargado y pega la suma de verificación del editor en el campo Comparar con. No importan las mayúsculas y minúsculas, y también sirve un valor en Base64. Coincide significa que el archivo es, byte a byte, el mismo a partir del cual se generó la suma. Eso no demuestra quién lo creó, así que toma la suma de verificación del sitio HTTPS del editor o de un archivo SHA256SUMS firmado, y no del servidor espejo desde el que lo descargaste.
En el caso del texto, el hash se calcula sobre bytes, no sobre caracteres. Los finales de línea de Windows (CRLF), una marca de orden de bytes (BOM) o UTF-16 en lugar de UTF-8 producen, cada uno, un SHA-256 completamente distinto. Usa la Codificación de texto o la entrada en hexadecimal para calcular el hash exactamente de los mismos bytes que procesó el otro sistema.
Extensión de longitud y contraseñas
Al igual que MD5, SHA-1 y SHA-512, SHA-256 es vulnerable a la extensión de longitud: a partir de SHA-256(secret + message) y de la longitud del secreto, un atacante puede calcular un hash válido para ese mensaje seguido de un relleno y de datos elegidos por él, sin conocer el secreto. Para firmar o autenticar datos con una clave, usa HMAC-SHA256 con el Generador HMAC en lugar de calcular el hash de la clave y el mensaje juntos.
La velocidad es también la razón por la que un SHA-256 simple no sirve para guardar contraseñas: quien obtenga los hashes puede probar contraseñas tan rápido como sus tarjetas gráficas calculan SHA-256, y las contraseñas idénticas producen hashes idénticos. Usa Argon2id, scrypt, bcrypt o PBKDF2-HMAC-SHA256 con un número alto de iteraciones; todos ellos añaden una sal.
SHA-256 en la línea de comandos y en código
$ printf 'abc' | sha256sum
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad -
sha256sum -c SHA256SUMS # Linux: comprobar una lista de archivos
shasum -a 256 file.iso # macOS
certutil -hashfile file.iso SHA256 # Windows
Get-FileHash file.iso # PowerShell (SHA256 es el predeterminado)
# Python
hashlib.sha256(data).hexdigest()
// Node.js
crypto.createHash('sha256').update(data).digest('hex')
El valor de abc es el vector de prueba del estándar; escribe abc arriba para ver el mismo resultado. La tabla Todos los algoritmos también muestra los valores SHA-384, SHA-512, SHA-1, MD5 y CRC de tu entrada.
Ejemplos
| Entrada (UTF-8) | SHA-256 |
|---|---|
Hello, World! | dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f |
Base64.is | 63f2f446bc11a1f96175c0f77bdac08ca1b184ba42c3a42c34ddcbce00b1b800 |
你好 | 670d9743542cae3ea7ebe36af56bd53648b0a1126162e78d81a32934a711302e |
Preguntas frecuentes
¿Se puede descifrar SHA-256?
No. SHA-256 es un hash unidireccional, no un cifrado. Los "descifradores" en línea solo buscan los hashes en tablas de entradas conocidas, así que encuentran contraseñas comunes y cadenas cortas, pero nada largo ni aleatorio.
¿Por qué mi SHA-256 no coincide con la suma de verificación publicada?
Lo más habitual es que la descarga esté incompleta o sea de otra versión, o que hayas calculado el hash del nombre del archivo en lugar del propio archivo. Carga el archivo con Abrir archivo. Comprueba también que ambos valores usen el mismo algoritmo: un valor hexadecimal de 128 caracteres procede de un hash de 512 bits como SHA-512, no de SHA-256.
¿Cómo obtengo un hash SHA-256 en Base64?
sha256-, aunque sha384- es más habitual) y el encabezado HTTP Content-Digest usan esta forma. El hexadecimal y el Base64 contienen los mismos 32 bytes; puedes convertir entre ellos con Base64 a hexadecimal.¿SHA-256 es lo mismo que SHA-2?
SHA-2 es una familia: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 y SHA-512/256. SHA-256 es su miembro más común. SHA-3 (FIPS 202) es un diseño independiente basado en Keccak y da resultados distintos.
¿Qué longitud tiene un hash SHA-256?
=. SHA3-256 y BLAKE2s tienen la misma longitud; el Identificador de hash muestra estos posibles algoritmos para un hash desconocido.