Generador de contraseñas alfanuméricas con C# (Aplicación de consola)

Alguna vez has pensado ¿cómo es que algunos sistemas te asignan una contraseña por defecto?, bueno este es un pequeño algoritmo hecho en el lenguaje de programación C#, que te permite crear contraseñas alfanuméricas totalmente aleatorias para poder implementarlo en algún sistema.

Es importante aclarar que para entender el siguiente código hay que tener conocimientos básicos en programación en C#.

Esta tarea de generar una contraseña aleatoria se facilita gracias a una clase llamada Random la cual representa un generador de números seudoaleatorios.

En el código utilizado a continuación he creado una clase estática que contiene un método llamado GenerarPassword que recibe como parámetro una variable de tipo int llamada longitud que es el número de caracteres que contendrá nuestra contraseña, podría ser una longitud ya por defecto, pero en este caso nosotros podemos elegir la longitud al ejecutar nuestro programa.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Password
{
    public static class Password
    {
        public static string GenerarPassword(int longitud)
        {
            string contraseña = string.Empty;
            string[] letras = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "ñ", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
                                "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
            Random EleccionAleatoria = new Random();

            for (int i = 0; i < longitud; i++)
            {
                int LetraAleatoria = EleccionAleatoria.Next(0, 100);
                int NumeroAleatorio = EleccionAleatoria.Next(0, 9);

                if (LetraAleatoria < letras.Length)
                {
                    contraseña += letras[LetraAleatoria];
                }
                else
                {
                    contraseña += NumeroAleatorio.ToString();
                }
            }
            return contraseña;
        }
}

Dentro de él tenemos dos variables una de tipo string llamada contraseña y otra de tipo array llamada letras, que también contiene valores de tipo string, nuestro array es para poder elegir una letra de manera aleatoria para nuestra contraseña y esto lo lograremos creando una instancia de la clase Random, de esta manera ya tendremos nuestro objeto en este caso llamado EleccionAleatoria para poder crear nuestros números seudoaleatorios, después tenemos un bucle for que, es el que nos permitirá agregar las letras a nuestra contraseña, declaramos en el ciclo for que el limite será igual al valor de nuestra variable longitud y dentro de nuestro ciclo for tenemos una condicional if else la cuál nos sirve para elegir un número o una letra de la siguiente manera:

Dentro del bucle for es donde se crea nuestra contraseña, en este caso eh declarado dos variables locales de tipo int, la primera llamada LetraAleatoria la cual es igual al método llamado Next de nuestro objeto EleccionAleatoria el cual recibe dos parámetros los cuales son nuestros límites, es decir,  el rango que abarcaran los números pseudoaleatorios que queremos crear, en este caso el rango es de 0 a 100 y para la variable NumeroAleatorio es exactamente lo mismo  solo que con un rango de 0 a 9.

Tenemos que si nuestra variable LetraAleatoria es menor o igual que la longitud de nuestro array letras entonces le va a concatenar una letra elegida aleatoriamente de nuestro array a la variable contraseña, porque recordemos que nuestro rango de numeros en la variable LetraAleatoria es de 0 a 100 y si contamos los elementos en el array son 54(contiene el abecedario en minúsculas y mayúsculas) es por eso que utilice un rango mayor al del array para que también haya probabilidad de que se pueda escoger una letra o un número, hay que recordar que en un arreglo los elementos siempre son igual n-1 este caso 54 – 1 = 53 , entonces si la letra aleatoria generada es mayor a 53 no le va a concatenar ninguna letra ya que ecxede el limite del array y esto generaría un error, pasaría al bloque else entonces usaríamos nuestra variable NumeroAletorio la cual genera un numero aleatorio en un rango del 0 al 9 por lo cuál  ya se estaría concatenando un número de un solo dígito a nuestra contraseña. Cuando haya terminado su ciclo el bucle for solo retornara nuestra contraseña con el número de caracteres que le hayamos asignado con nuestra variable longitud.

Para ejecutar nuestro programa vamos al metodo main() y ejecutamos el siguiente código que es muy sencillo, solo nos pide ingresar la longitud de la contraseña y al ingresarla nos generara nuestra contraseña alfanumérica utilizando nuestra clase Password.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Password
{
    class Ejecutar
    {
        static void Main(string[] args)
        {
            int longitud;
            Console.WriteLine("----------Generador de contraseñas----------");
            Console.Write("\nIngrese la longitud de la contraseña: ");
            longitud =  int.Parse(Console.ReadLine());

            Console.WriteLine("La contraseña generada es: " + Password.GenerarPassword(longitud));

            Console.ReadKey();
        }
    }
}

Se vería así al momento de compilar nuestro programa:


¿Quieres aprender a programar de manera profesional?

 

Te invitamos a formar parte de Azul School donde vas a tener acceso a cursos profesionales con certificado. Además tienes acceso a una red social de programadores donde puedes conocer gente de tu ciudad o país.

 

Si quieres acceder a todas las funciones te regalamos un descuento del 75% usando este cupón (no vas a encontrar este descuento en ningún otro lugar) Cupón: azulweb y lo puedes cambiar aquí: Haz clic aquí para cambiar el cupón del 75%.

 

También puedes probar la plataforma de forma gratuita y obtener un curso gratuito aquí: Haz clic aquí para probar la plataforma de forma gratuita.


También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada.