¿cuanta gente a visto el blog?

Generador de Contraseñas con Script Bash


No es raro que necesites generar una contraseña aleatoria que puedas usar para cualquier instalación de software o cuando te registres en cualquier sitio web.
Hay muchas opciones para lograr esto. Puedes usar un gestor/almacenador de contraseñas donde a menudo tienes la opción de generar una contraseña aleatoria, o usar un sitio web que pueda generar la contraseña en tu nombre.
También puedes usar Bash en tu terminal (línea de comandos) para generar una contraseña que puedas usar rápidamente. Hay muchas maneras de lograrlo y me aseguraré de cubrir algunas de ellas y dejarte elegir cuál opción es la más adecuada para tus necesidades.

Advertencia: Seguridad
Este script está destinado a practicar tus habilidades de scripting en bash. Puedes divertirte mientras haces proyectos simples con BASH, pero la seguridad no es un juego, así que asegúrate de no guardar tus contraseñas en texto plano en un archivo local o escribirlas a mano en un papel.
Te recomendaría encarecidamente usar proveedores seguros y de confianza para generar y guardar las contraseñas.

Resumen del Script
Primero, haré un resumen rápido de lo que nuestro script va a hacer:

  1. Tendremos la opción de elegir la longitud de los caracteres de la contraseña cuando se ejecute el script.
  2. El script generará luego 5 contraseñas aleatorias con la longitud que se especificó en el paso 1.

Requisitos previos
Necesitarás un terminal bash y un editor de texto. Puedes usar cualquier editor de texto como vi, vim, nano o Visual Studio Code.
Estoy ejecutando el script localmente en mi laptop Linux, pero si estás usando una PC con Windows, puedes SSH a cualquier servidor de tu elección y ejecutar el script allí.
Aunque el script es bastante simple, tener algunos conocimientos básicos de scripting en BASH te ayudará a comprender mejor el script y cómo funciona.

Generar una contraseña aleatoria
Uno de los grandes beneficios de Linux es que puedes hacer muchas cosas usando diferentes métodos. Cuando se trata de generar una cadena aleatoria de caracteres, no es diferente.
Puedes usar varios comandos para generar una cadena aleatoria de caracteres. Cubriré algunos de ellos y proporcionaré algunos ejemplos.
Usando el comando date. El comando date mostrará la fecha y hora actuales. Sin embargo, también manipulamos la salida para usarla como contraseña generada aleatoriamente. Podemos hashear la fecha usando md5, sha o simplemente pasarla por base64. Estos son algunos ejemplos:

date | md5sum date | sha256sum date | base64

También podemos usar openssl para generar bytes pseudoaleatorios y ejecutar la salida a través de base64. Un ejemplo de salida será:
openssl rand -base64 10
Ten en cuenta que openssl puede no estar instalado en tu sistema, por lo que probablemente necesitarás instalarlo primero para usarlo.
La forma más preferida es usar el generador de números pseudoaleatorios - /dev/urandom, ya que está destinado para la mayoría de los propósitos criptográficos. También necesitaríamos manipular la salida usando tr para traducirla. Un ejemplo de comando es:
tr -cd '[:alnum:]' < /dev/urandom | fold -w10 | head -n 1
Con este comando tomamos la salida de /dev/urandom y la traducimos con tr mientras usamos todas las letras y dígitos y imprimimos la cantidad deseada de caracteres.

El script
Primero comenzamos el script con el shebang. Lo usamos para decirle al sistema operativo qué intérprete usar para analizar el resto del archivo.
#!/bin/bash
Luego continuamos y pedimos al usuario que ingrese algunos datos. En este caso, nos gustaría saber cuántos caracteres necesita que tenga la contraseña:

# Preguntar al usuario por la longitud de la contraseña clear printf "\n" read -p "¿Cuántos caracteres te gustaría que tuviera la contraseña? " pass_length printf "\n"

Generamos las contraseñas y luego las imprimimos para que el usuario pueda usarlas.

# ¡Aquí es donde ocurre la magia! # Generar una lista de 10 cadenas y cortarla al valor deseado proporcionado por el usuario for i in {1..10}; do (tr -cd '[:alnum:]' < /dev/urandom | fold -w${pass_length} | head -n 1); done # Imprimir las cadenas printf "$pass_output\n" printf "Adiós, ${USER}\n"

El script completo:

#!/bin/bash #======================================= # Generador de contraseñas con opción de inicio de sesión #======================================= # Preguntar al usuario por la longitud de la cadena clear printf "\n" read -p "¿Cuántos caracteres te gustaría que tuviera la contraseña? " pass_length printf "\n" # ¡Aquí es donde ocurre la magia! # Generar una lista de 10 cadenas y cortarla al valor deseado proporcionado por el usuario for i in {1..10}; do (tr -cd '[:alnum:]' < /dev/urandom | fold -w${pass_length} | head -n 1); done # Imprimir las cadenas printf "$pass_output\n" printf "Adiós, ${USER}\n"

Conclusión
Así es como puedes usar un script bash simple para generar contraseñas aleatorias.
Advertencia: Como ya se mencionó, asegúrate de usar contraseñas fuertes para proteger tu cuenta.
Además, siempre que sea posible, usa autenticación de dos factores, ya que esto proporcionará una capa adicional de seguridad para tu cuenta.
Aunque el script funciona bien, espera que el usuario proporcione la entrada solicitada. Para prevenir problemas, necesitarías hacer algunas verificaciones más avanzadas en la entrada del usuario para asegurarte de que el script continúe funcionando bien incluso si la entrada proporcionada no coincide con nuestras necesidades.

Contribuido por
Alex Georgiev


Cierre
¡Felicidades! Has completado la guía básica de Bash.
Si encontraste esto útil, asegúrate de dar una estrella al proyecto en GitHub.
Si tienes sugerencias para mejoras, asegúrate de contribuir con solicitudes de extracción o abrir problemas.
En esta introducción a la programación de scripts en Bash, solo cubrimos lo básico, pero todavía tienes suficiente conocimiento para comenzar a escribir algunos scripts geniales y automatizar tareas diarias.
Como siguiente paso, intenta escribir tu propio script y compártelo con el mundo. ¡Esta es la mejor manera de aprender cualquier nuevo lenguaje de programación o scripting!
Si este libro te inspiró a escribir algunos scripts Bash interesantes, asegúrate de tuitear sobre ello y etiquetar a @bobbyiliev_ para que podamos verlo.
¡Felicidades nuevamente por completar este libro!

No hay comentarios.:

Publicar un comentario