Crea contraseñas seguras con este generador en Node.js

Introducción

Asegurar nuestras contraseñas es vital para proteger nuestra información personal y profesional. En este artículo, te mostraremos cómo puedes generar contraseñas seguras y personalizadas utilizando un generador de contraseñas en Node.js.

¿Qué es un generador de contraseñas?

Un generador de contraseñas es un programa que genera contraseñas seguras y personalizadas de forma automática. Utiliza diferentes combinaciones de letras, números y caracteres especiales para crear contraseñas únicas y difíciles de adivinar.

Pasos para crear un generador de contraseñas en Node.js:

  1. Instalar las dependencias: Antes de empezar a escribir el código, es necesario instalar las dependencias necesarias. En este caso, vamos a utilizar una biblioteca llamada «yargs» para manejar los argumentos de línea de comandos.
  2. Escribir el código: El código que hemos proporcionado en este artículo (Ver al final) es un ejemplo básico de un generador de contraseñas en Node.js. Explicamos línea por línea lo que hace el código:
  • En la primera línea, importamos la biblioteca «yargs».
  • A continuación, definimos la función «generarPassword» que toma cinco argumentos opcionales: la longitud de la contraseña, si incluye caracteres especiales, si incluye letras mayúsculas, si incluye letras minúsculas y si incluye números.
  • Luego definimos los caracteres especiales, letras mayúsculas, letras minúsculas y números que se utilizarán para generar la contraseña.
  • A continuación, inicializamos la cadena «allowedChars» con los caracteres permitidos para generar la contraseña y la cadena «password» con el primer carácter de cada tipo de carácter permitido.
  • Después, creamos un bucle que agrega caracteres aleatorios de la cadena «allowedChars» hasta que la longitud de la cadena «password» sea igual a la longitud deseada de la contraseña.
  • Por último, definimos la función «randomChar» que toma una cadena de caracteres y devuelve un carácter aleatorio de esa cadena.
  1. Utilizar el generador de contraseñas: Para utilizar el generador de contraseñas, es necesario ejecutar el archivo en la línea de comandos. Podemos especificar las opciones de la contraseña utilizando las banderas proporcionadas por «yargs». Por ejemplo, si queremos generar una contraseña de 16 caracteres que incluya caracteres especiales, letras mayúsculas y números, podemos ejecutar el siguiente comando:

node generador-contrasenas.js -l 16 -s -u -n

  1. Consejos para crear contraseñas seguras: Aunque el generador de contraseñas es una herramienta útil para crear contraseñas seguras, es importante tener en cuenta algunos consejos para crear contraseñas seguras por nuestra cuenta:
  • Utilizar una combinación de caracteres especiales, letras mayúsculas, letras minúsculas y números.
  • Evitar usar información personal en la contraseña, como fechas de nacimiento o nombres de familiares.
  • Utilizar contraseñas diferentes para cada cuenta.
  • Cambiar la contraseña con regularidad.

El código

const yargs = require(‘yargs’);

function generarPassword(passwordLen = 12, hasSpecialChars = true, hasUpperCase = true,
hasLowerCase = true, hasNumbers = true) {
  const specialChars = ‘!@#$%^&*()_-+={}[];:»|<>,.?/~`’;
  const uppercaseLetters = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’;
  const lowercaseLetters = ‘abcdefghijklmnopqrstuvwxyz’;
  const numbers = ‘0123456789’;

  let allowedChars = »;
  let password = »;

  if (hasSpecialChars) {
    allowedChars += specialChars;
    password += randomChar(specialChars);
  }

  if (hasUpperCase) {
    allowedChars += uppercaseLetters;
    password += randomChar(uppercaseLetters);
  }

  if (hasLowerCase) {
    allowedChars += lowercaseLetters;
    password += randomChar(lowercaseLetters);
  }

  if (hasNumbers) {
    allowedChars += numbers;
    password += randomChar(numbers);
  }

  for (let i = password.length; i < passwordLen; i++) {
    password += randomChar(allowedChars);
  }

  return password;
}

function randomChar(characters) {
  const index = Math.floor(Math.random() * characters.length);
  return characters.charAt(index);
}

const argv = yargs
  .option(‘passwordLen’, {
    alias: ‘l’,
    describe: ‘Password length’,
    type: ‘number’,
    default: 12
  })
  .option(‘hasSpecialChars’, {
    alias: ‘s’,
    describe: ‘Include special characters’,
    type: ‘boolean’,
    default: true
  })
  .option(‘hasUpperCase’, {
    alias: ‘u’,
    describe: ‘Include uppercase letters’,
    type: ‘boolean’,
    default: true
  })
  .option(‘hasLowerCase’, {
    alias: ‘c’,
    describe: ‘Include lowercase letters’,
    type: ‘boolean’,
    default: true
  })
  .option(‘hasNumbers’, {
    alias: ‘n’,
    describe: ‘Include numbers’,
    type: ‘boolean’,
    default: true
  })
  .help()
  .alias(‘help’, ‘h’)
  .argv;

const password = generarPassword(
  argv.passwordLen,
  argv.hasSpecialChars,
  argv.hasUpperCase,
  argv.hasLowerCase,
  argv.hasNumbers
);

console.log(password);

Conclusión

En resumen, hemos creado un generador de contraseñas personalizado en Node.js utilizando el módulo Yargs para recibir entradas de usuario. A través del uso de varias opciones de línea de comando, el usuario puede personalizar la longitud de la contraseña, incluir caracteres especiales, letras mayúsculas, letras minúsculas y números. La función generarPassword utiliza una combinación de los parámetros proporcionados por el usuario para crear una contraseña aleatoria y segura.

Si bien nuestra implementación puede no ser perfecta, proporciona una base sólida para la creación de un generador de contraseñas personalizado más avanzado. En el futuro, se podrían agregar más opciones para personalizar aún más la contraseña y se podría integrar la función de generación de contraseñas en un proyecto más grande, como una aplicación de inicio de sesión o un administrador de contraseñas.

En conclusión, este generador de contraseñas en Node.js es una herramienta útil para cualquier persona que busque crear contraseñas seguras de manera rápida y sencilla. Esperamos que este artículo haya sido informativo y útil para aquellos interesados en aprender más sobre Node.js y el módulo Yargs. ¡Gracias por leer!

Deja un comentario