Una de las mejores cosas de Linux es que puede hacer lo mismo de cientos de maneras diferentes, incluso algo tan simple como generar una contraseña aleatoria se puede lograr con docenas de comandos diferentes. Aquí hay 10 formas en que puede hacerlo.
Reunimos todos estos comandos de Línea de comandos Fu y los probamos en nuestra propia PC Linux para asegurarnos de que funcionen. Debería poder usar al menos algunos de estos en Windows con Cygwin instalado, aunque no los probamos todos, el último definitivamente funciona.
Generar una contraseña aleatoria
Para cualquiera de estos comandos de contraseña aleatoria, puede modificarlos para generar una longitud de contraseña diferente, o simplemente puede usar los primeros x caracteres de la contraseña generada si no desea una contraseña tan larga. Esperemos que esté utilizando un administrador de contraseñas como ÚltimoPass de todos modos, así que no necesitas memorizarlos.
Este método utiliza SHA para hash la fecha, se ejecuta a través de base64 y, a continuación, genera los 32 caracteres principales.
date +%s | sha256sum | base64 | head -c 32 ; echo
Este método utiliza la característica integrada /dev/urandom y filtra solo los caracteres que normalmente usaría en una contraseña. Luego emite los 32 primeros.
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c€{1:-32};echo;
Este utiliza la función rand de openssl, que puede no estar instalada en su sistema. Menos mal que hay muchos otros ejemplos, ¿verdad?
openssl rand -base64 32
Este funciona muy parecido al otro urandom, pero simplemente hace el trabajo a la inversa. ¡Bash es muy poderoso!
tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1
Aquí hay otro ejemplo que filtra usando el comando strings, que genera cadenas imprimibles desde un archivo, que en este caso es la característica urandom.
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '/n'; echo
Aquí hay una versión aún más simple de la urandom.
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6
Este logra usar el muy útil comando dd.
dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
Incluso puede crear una contraseña aleatoria a la izquierda, lo que le permitiría escribir su contraseña con una mano.
</dev/urandom tr -dc '12345!@#€%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c8; echo ""
Si va a usar esto todo el tiempo, probablemente sea una mejor idea ponerlo en una función. En este caso, una vez que ejecute el comando una vez, podrá usar randpw en cualquier momento que desee generar una contraseña aleatoria. Probablemente querrás poner esto en tu archivo ~/.bashrc.
randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c€{1:-16};echo;}
Puede usar esta misma sintaxis para convertir cualquiera de estos en una función, simplemente reemplace todo dentro del { }
Y aquí está la forma más fácil de hacer una contraseña desde la línea de comandos, que funciona en Linux, Windows con Cygwin y probablemente Mac OS X. Estoy seguro de que algunas personas se quejarán de que no es tan aleatorio como algunas de las otras opciones, pero honestamente, es lo suficientemente aleatorio si vas a usar todo.
date | md5sum
Sí, eso es incluso bastante fácil de recordar.
Hay muchas otras formas en que puede crear una contraseña aleatoria desde la línea de comandos en Linux, por ejemplo, el comando mkpasswd, que en realidad puede asignar la contraseña a una cuenta de usuario de Linux. Entonces, ¿cuál es tu forma favorita?