Generador de Unix Crypt
Genera un hash de contraseña con salt para /etc/shadow en Linux.
Cómo usar Generador de Unix Crypt
- Introduce la contraseña que quieres hashear.
- Deja el esquema en SHA-512 crypt ($6$) a menos que el sistema de destino necesite uno más antiguo.
- Haz clic en Generar y pega el hash en /etc/shadow, tu variable de Ansible o tu archivo de cloud-init.
Acerca de Generador de Unix Crypt
Estos son los hashes que viven en /etc/shadow en Linux. El formato es $id$salt$hash, y el id indica qué esquema lo produjo: $1$ es MD5-crypt, $5$ es SHA-256 crypt y $6$ es SHA-512 crypt. SHA-512 crypt ($6$) es el valor por defecto en la mayoría de las distribuciones Linux modernas, razón por la cual también es el valor por defecto aquí; si vas a escribir un hash en un sistema moderno, casi con toda seguridad es el que quieres.
MD5-crypt merece una aclaración, porque su nombre confunde a la gente constantemente. Fue diseñado por Poul-Henning Kamp para FreeBSD, y a pesar del nombre no es un MD5 simple de tu contraseña; aplica MD5 muchas veces con un salt mezclado, precisamente para ralentizar a los atacantes. Un hash $1$ y un hash MD5 sin más son cosas completamente distintas y no son intercambiables. Sigue siendo el más débil de los tres aquí, y solo vale la pena elegirlo cuando un sistema antiguo no te deja otra opción.
Los tres esquemas tienen salt, así que la salida es distinta cada vez; eso es correcto, no un error. El salt se sitúa en medio de la cadena para que el sistema pueda leerlo de nuevo al comprobar un inicio de sesión. Estos son mucho mejores que un hash sin salt en bruto, pero para una aplicación nueva siguen siendo la opción más débil, porque no son resistentes en memoria: cuestan tiempo de CPU pero muy poca RAM, así que los ataques con GPU escalan bien contra ellos. Prefiere bcrypt o Argon2 ahí. Donde los hashes crypt realmente brillan es en el trabajo de sistemas: scripts de creación de usuarios, tareas user de Ansible, campos passwd de cloud-init e imágenes de Docker, donde el sistema operativo espera exactamente este formato y nada más servirá.
Preguntas frecuentes
¿Qué significan $1$, $5$ y $6$?
Son identificadores de esquema al inicio del hash: $1$ es MD5-crypt, $5$ es SHA-256 crypt y $6$ es SHA-512 crypt. Le sigue el salt, y luego el hash en sí, separados por signos de dólar.
¿Por qué cambia el hash cada vez que hago clic en Generar?
Porque se genera un salt aleatorio nuevo en cada ejecución y se mezcla dentro. Ambos hashes son válidos para la misma contraseña; el salt se almacena dentro de la cadena para que el sistema pueda verificar un inicio de sesión más tarde.
¿Es $1$ lo mismo que un hash MD5?
No, y esto suele confundir a la gente. MD5-crypt fue diseñado por Poul-Henning Kamp para FreeBSD y aplica MD5 muchas veces con un salt. No es un MD5 simple de tu contraseña, y los dos no son intercambiables.
¿Cuál debería elegir?
SHA-512 crypt ($6$): es el valor por defecto en la mayoría de las distribuciones Linux modernas. Baja a $5$ o $1$ solo si apuntas a un sistema antiguo que lo requiera.
¿Debería usar hashes crypt en mi aplicación web?
No. Tienen salt y son mucho mejores que un hash en bruto, pero no son resistentes en memoria, así que las GPU los atacan eficientemente. Usa bcrypt o Argon2 para contraseñas de aplicaciones y reserva crypt para /etc/shadow y el aprovisionamiento de sistemas.
¿Se almacena mi contraseña?
No. Se envía a nuestro servidor para ser hasheada, porque los navegadores no pueden calcular crypt, y luego se hashea y se descarta de inmediato: nunca se registra ni se almacena. Para una contraseña de cuenta de producción real, ejecutar mkpasswd en tu propia máquina sigue siendo el hábito más seguro.

