Guía
SHA-256, hash y cifrado: diferencias importantes
Aprende para qué sirve una huella SHA-256, por qué no se descifra y cuándo no basta para guardar contraseñas o autenticar datos.
por Tools in a Tab · Publicado el · Revisado el
Respuesta breve
SHA-256 es una función hash: transforma una secuencia de bytes en una huella de 256 bits. No cifra el texto y no existe una clave para «descifrar» el hash.
entrada UTF-8: abc
SHA-256:
ba7816bf8f01cfea414140de5dae2223
b00361a396177a9cb410ff61f20015ad
El resultado hexadecimal tiene 64 caracteres. Puedes comprobar el vector con el generador SHA-256.
Propiedades útiles
- La misma secuencia de bytes produce la misma huella.
- Un cambio pequeño en la entrada altera ampliamente el resultado.
- La salida tiene longitud fija.
- No se espera poder reconstruir la entrada a partir de la huella.
El estándar FIPS 180-4 especifica SHA-256 dentro de la familia Secure Hash Standard.
Lo que una coincidencia demuestra
Si calculas SHA-256 sobre bytes descargados y coincide con una huella obtenida por un canal confiable, tienes evidencia de que esos bytes no cambiaron. Si la huella y el archivo proceden del mismo lugar comprometido, la comparación no aporta autenticidad independiente.
Para autenticar un mensaje hacen falta construcciones como un MAC o una firma, con claves y verificación adecuadas. Concatenar manualmente un secreto con el texto y aplicar SHA-256 no sustituye un diseño criptográfico revisado.
Contraseñas
SHA-256 solo es rápido, lo que facilita probar muchas contraseñas candidatas. El almacenamiento de contraseñas necesita una función específica, lenta y con salt, junto con parámetros mantenidos por el sistema. Base64 tampoco sirve: es reversible sin clave.
Compara exactamente los bytes
texto, texto\n y una versión con otra normalización Unicode producen hashes
distintos. Documenta codificación, saltos de línea y si la herramienta procesa
texto o archivos. La herramienta publicada calcula SHA-256 de texto UTF-8; no
afirma calcular directamente el contenido binario de un archivo.