Introducción
En este proyecto, aprenderás cómo crear un script generador de contraseñas aleatorias que cumpla con requisitos de seguridad específicos. El script generará una contraseña de 12 caracteres que incluya al menos un dígito, una letra mayúscula, una letra minúscula y un carácter especial del conjunto ><+-{}:.&;. Este proyecto te proporcionará experiencia práctica en scripting y en trabajar con datos aleatorios.
👀 Vista previa
$ cd /home/labex/project
$ sh genpass.sh
## Ejemplo
2Dsxw9+xS:27
🎯 Tareas
En este proyecto, realizarás lo siguiente:
- Configurar el entorno del proyecto y crear el archivo de script necesario.
- Implementar la lógica para generar una contraseña aleatoria que cumpla con los requisitos de complejidad especificados.
- Probar el script generador de contraseñas para asegurarte de que funcione correctamente.
🏆 Logros
Al completar este proyecto, podrás:
- Comprender el proceso de creación de un script generador de contraseñas aleatorias.
- Implementar un algoritmo de generación de contraseñas que satisfaga requisitos específicos de tipos de caracteres.
- Probar y validar las contraseñas generadas para confirmar que cumplen con los criterios deseados.
Configurar el entorno del proyecto
En este paso, prepararás tu entorno de trabajo y crearás el archivo necesario para el script generador de contraseñas.
Abre tu terminal y navega hasta el directorio
/home/labex/projectutilizando el comandocd:cd /home/labex/projectCrea un nuevo archivo llamado
genpass.shutilizando el comandotouch. Este será el archivo donde escribirás tu script generador de contraseñas:touch genpass.shAbre el archivo
genpass.shen un editor de texto. Puedes usarnano,vimo cualquier editor de texto que prefieras. Agrega la siguiente línea de shebang al principio del archivo:#!/bin/zsh ## Generador de contraseñas aleatorias ## Este script genera una contraseña aleatoria que cumple con los requisitos especificados.Esta línea le dice al sistema que use la shell zsh para ejecutar el script. Los comentarios que siguen a la línea de shebang proporcionan una breve descripción del script.
Implementar la lógica de generación de contraseñas
En este paso, agregarás la lógica central al script genpass.sh para generar contraseñas aleatorias que cumplan con los requisitos de complejidad.
Dentro del archivo
genpass.sh, agrega la siguiente función para generar la contraseña:## Función para generar una contraseña aleatoria generate_password() { local length=12 local password='' ## Caracteres especiales local special_chars='><+-{}:.&;' local special_char="${special_chars:$RANDOM%${#special_chars}:1}" password+="$special_char" ## Dígitos local digits='0123456789' local digit="${digits:$RANDOM%${#digits}:1}" password+="$digit" ## Letras mayúsculas local upper_case='ABCDEFGHIJKLMNOPQRSTUVWXYZ' local upper="${upper_case:$RANDOM%${#upper_case}:1}" password+="$upper" ## Letras minúsculas local lower_case='abcdefghijklmnopqrstuvwxyz' local lower="${lower_case:$RANDOM%${#lower_case}:1}" password+="$lower" ## Caracteres restantes local remaining_length=$((length - 4)) local characters='><+-{}:.&;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' local num_characters=${#characters} for ((i = 0; i < remaining_length; i++)); do local random_char="${characters:$RANDOM%$num_characters:1}" password+="$random_char" done ## Mezclar el orden de los caracteres de la contraseña password=$(echo "$password" | fold -w1 | shuf | tr -d '\n') echo "$password" }Esta función funciona de la siguiente manera:
- Inicializa la contraseña con un carácter especial, un dígito, una letra mayúscula y una letra minúscula para cumplir con los criterios básicos.
- Calcula el número de caracteres restantes para alcanzar la longitud deseada de 12.
- Selecciona aleatoriamente los caracteres restantes de un grupo de dígitos, letras (mayúsculas y minúsculas) y caracteres especiales.
- Mezcla la contraseña para asegurar que los caracteres específicos no estén siempre al principio.
Agrega el siguiente código al final del archivo
genpass.sh. Esta parte del script llama a la funcióngenerate_passworde imprime la contraseña generada en la consola:## Generar contraseña y mostrarla generate_password
Probar el generador de contraseñas
En este paso, probarás el script genpass.sh para asegurarte de que genere contraseñas que cumplan con todos los requisitos.
Guarda el archivo
genpass.shen tu editor de texto.En la terminal, haz el script ejecutable utilizando el comando
chmod:chmod +x genpass.shEste comando agrega permisos de ejecución al archivo, lo que permite ejecutarlo como un programa.
Ejecuta el script utilizando el siguiente comando:
sh genpass.shEl script debería mostrar una contraseña aleatoria de 12 caracteres en la consola. La salida debe contener al menos un carácter especial, un dígito, una letra mayúscula y una letra minúscula.
## Ejemplo 2Dsxw9+xS:27Ejecuta el script varias veces más. Cada vez, se debería generar una contraseña diferente. Esto verifica que la aleatoriedad del generador de contraseñas funcione correctamente.
¡Felicidades! Has implementado y probado con éxito un generador de contraseñas aleatorias que cumple con los requisitos de complejidad especificados.
Resumen
¡Felicidades! Has completado este proyecto y creado un script generador de contraseñas aleatorias. Ahora tienes una base sobre la cual construir futuros proyectos de scripting. Puedes continuar practicando con más laboratorios en LabEx para mejorar aún más tus habilidades.



