🔐 Cripto App

Funciones hash y HMAC

SHA-256, SHA-1, MD5 (envolviendo la librería estándar de Python), efecto avalancha, y HMAC.

Calculando…
¿Por qué funciona esto matemáticamente?

Una función hash criptográfica debe ser (1) determinista (mismo input → mismo output siempre), (2) de salida fija sin importar el tamaño de la entrada, (3) unidireccional (fácil calcular el hash, computacionalmente inviable recuperar el mensaje original a partir del hash), y (4) resistente a colisiones (inviable encontrar dos mensajes distintos con el mismo hash). El efecto avalancha (que un solo bit de diferencia en la entrada cambie ~50% de los bits de salida) es una consecuencia deseable de estas propiedades: si los hashes de entradas parecidas se parecieran entre sí, eso filtraría información sobre la entrada, rompiendo la propiedad unidireccional.

En el mundo real: nunca guardes contraseñas con un hash simple sin sal (ver "Cracking de contraseñas"). Para verificar contraseñas se usan funciones diseñadas para ser lentas a propósito (bcrypt, scrypt, Argon2) — lo opuesto de SHA-256, que es rápido por diseño (bueno para integridad de archivos, malo para contraseñas porque facilita la fuerza bruta).