Saltar al contenido
Open Security
Ciberseguridad Práctica Inicial · 14 min

Hashear no es cifrar

Lab quirúrgico para no volver a confundir hash, encoding y cifrado. base64 se deshace, SHA-256 no. Con playground interactivo para verlo.

#ciberseguridad#hashing#cripto

Antes de empezar necesitás

  • Saber qué es texto plano vs binario

Al terminar vas a poder

  • Distinguir encoding (base64) de hash (SHA-256) de cifrado
  • Entender por qué un hash no se 'desencripta'
  • Reconocer cuándo base64 NO protege nada

Tres palabras que se usan como sinónimos y no lo son: encoding, hashing y cifrado. Confundirlas es la raíz de un montón de bugs de seguridad. Este lab las separa para siempre.

La diferencia, en una línea

encoding (base64)  →  reversible, sin clave   →  para transportar datos
hashing (SHA-256)  →  irreversible, una vía   →  para verificar integridad
cifrado (AES)      →  reversible, con clave   →  para confidencialidad
  • base64 transforma bytes en texto seguro de transportar. Cualquiera lo deshace: no hay secreto. No protege nada.
  • SHA-256 produce una huella de tamaño fijo. No se puede volver al original: es de una sola vía.
  • Cifrado sí protege, pero necesita una clave para ir y volver.

Por qué un hash no se “desencripta”

Un hash tira información a la basura: muchos textos distintos pueden caer en huellas distintas, pero del resultado no hay vuelta atrás. Por eso:

  • El mismo input siempre da el mismo hash (sirve para comparar).
  • Cambiar un solo carácter cambia la huella entera (efecto avalancha).
  • No existe “desencriptar un SHA-256”: lo que se hace es comparar hashes.

Probalo

Escribí lo mismo en los dos. Fijate que base64 vuelve al original y SHA-256 no; y cómo cambiar una letra altera todo el hash.

Playground: base64 vs SHA-256

Escribí texto y compará. base64 es encoding reversible (no protege nada). SHA-256 es un hash de una sola vía: no se puede deshacer. Todo corre en tu navegador.

base64 (reversible)

      

SHA-256 (una vía)

      

En la terminal

vt@labs:~
# encoding: va y vuelve, sin secreto
echo -n 'hola' | base64        # aG9sYQ==
echo -n 'aG9sYQ==' | base64 -d # hola

# hash: una sola vía, determinístico
echo -n 'hola' | sha256sum
echo -n 'holb' | sha256sum     # una letra distinta = huella totalmente distinta

Lo que practicás en este lab

Llevátelo a tu repo si querés, pero no es obligatorio: es tu aprendizaje.

  • Captura del playground con un mismo texto en base64 y en SHA-256
  • Writeup de 3 líneas: un caso donde viste base64 usado como si fuera seguridad

Reto

Hasheá la misma palabra dos veces con sha256sum: tiene que dar idéntico. Cambiá una sola letra y mirá cómo cambia entero. Después codificala en base64 y volvé al texto original con base64 -d.

Resolvelo y escribí dos líneas explicando qué pasó. Con eso lo fijás.

¿Hiciste el lab?

Si querés, guardá lo que hiciste (comandos, notas, un repo) para volver después. Y si encontrás un error o querés mejorar este lab, contribuí al repo. El progreso se guarda solo en tu navegador.