¿Qué es SHA-1?
SHA-1 (Secure Hash Algorithm 1) es una función hash que convierte cualquier texto en una huella de 160 bits, 40 caracteres en hexadecimal. La diseñó la NSA y la publicó el NIST en 1995, y durante años fue la más usada en certificados SSL, firmas digitales y control de versiones como Git.
Hoy se considera insegura: en 2017 Google y el CWI de Ámsterdam consiguieron dos documentos PDF distintos con el mismo SHA-1 (el ataque SHAttered). Los navegadores ya no aceptan certificados firmados con SHA-1 y se recomienda usar SHA-256 o superior.
¿Qué es un hash?
Un hash es una huella digital de un texto. Tiene tres propiedades que lo hacen útil:
- Siempre mide lo mismo: el hash SHA-1 de una palabra o de un libro entero tiene 40 caracteres.
- Cambia por completo con cualquier cambio: basta una letra o un espacio para obtener un hash totalmente distinto.
- No se puede deshacer: a partir del hash no se puede obtener el texto original. Para verificar, se vuelve a calcular el hash del texto y se comparan.
¿Sirve para guardar contraseñas?
No directamente. SHA-1 está pensado para ser rápido, y eso juega a favor de quien intenta adivinar contraseñas probando millones por segundo. Para contraseñas usa un algoritmo lento a propósito y con sal, como bcrypt.