Qué es una función hash criptográfica
Una función hash criptográfica recibe una entrada de tamaño arbitrario y produce una salida de tamaño fijo (el hash). SHA-256 produce un hash de 256 bits (64 caracteres hexadecimales). La función es determinista, unidireccional y sensible al efecto avalancha.
Propiedades fundamentales
- Determinismo: misma entrada → mismo hash
- Unidireccionalidad: encontrar la entrada a partir del hash es computacionalmente inviable
- Efecto avalancha: un cambio de 1 bit en la entrada cambia ~50% de los bits de salida
- Resistencia a colisiones: extremadamente difícil encontrar dos entradas con el mismo hash
SHA-256 vs MD5
MD5 (128 bits) demostró ser vulnerable a colisiones en 2004. SHA-1 (160 bits) fue comprometido en 2017. SHA-256 sigue siendo considerado seguro y forma parte de la familia SHA-2 estandarizada por el NIST.
Principales casos de uso
- Integridad de archivos (checksum)
- Firmas digitales (DSA, RSA, ECDSA)
- Certificados SSL/TLS
- Blockchain (Bitcoin usa SHA-256)
- HMAC para autenticación de peticiones
Hash para contraseñas: no uses SHA-256 directamente
SHA-256 es demasiado rápido para hashear contraseñas. Usa siempre algoritmos lentos con salt: bcrypt (work factor ≥ 12), Argon2id o scrypt. Están diseñados específicamente para hacer el brute force económicamente no viable.