Hashing (WIP)
Hashing is a process used to convert data of any size into a fixed-length string of characters, usually through a mathematical algorithm. Unlike encryption, which can be reversed (decrypted), hashing is a one-way function, meaning that the original data cannot be recovered from the hash.

For example, when a file or password is hashed, any slight change in the input data will produce a completely different hash value. This makes it ideal for detecting changes in data and ensuring that files or messages haven't been altered.
Determinista: la misma entrada siempre da el mismo resultado
⚡ Rápido de calcular
🧩 Resistente a colisiones: difícil encontrar dos entradas distintas con el mismo hash
🧂 Salt
El salt es un valor aleatorio que se añade a la entrada antes del hash. 🔐 Sirve especialmente para el almacenamiento de contraseñas, ya que evita ataques de diccionario o fuerza bruta.
💡 Beneficio clave: incluso si dos personas tienen la misma contraseña, sus hashes serán distintos gracias al salt único.
🌶️ Pepper
El pepper funciona como el salt, pero con una diferencia clave: 🚫 No se almacena junto al hash y se mantiene secreto.
🔒 Se añade una capa extra de seguridad, combinándose con la contraseña antes de aplicar el hash.
HMAC (Hash-based Message Authentication Code)
🔐 El HMAC combina una función hash con una clave secreta para garantizar:
🧬 Integridad: que los datos no fueron alterados
🧑💻 Autenticidad: que vienen de una fuente confiable
📌 Usos comunes:
Firmas de API
Verificación de mensajes entre sistemas
Last updated