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:

Articulos relacionados:
https://youtu.be/205Mf8bVhxc VÍDEO VISTA PREVIA DEL CURSO ¿Qué es C++? C++ es un lenguaje de programación
Alguna ocasión te ha pasado que esta decidió a todo y entras a tu cuenta
¿Eres adicto a los vídeos? ¿Y gran parte del día te la pasas mirándolos?, pues
Cada versión de Windows trae unas mejoras visuales que destacan vs a versiones anteriores, hablando específicamente
Hace unos días acabo de cambiar mi disco duro, ya que estaba dándome algunos problemas,
La tecnología avanza todos los días y con ella los SmartPhones y tablets, lo cual
Programming Hub es una aplicación que reúne más de 20 lenguajes de programación como: Python, Assembly,
No solo sirven para las selfies... ¿Te imaginas aprender a programar desde dispositivo móvil ?
Canal en Telegram de Azul Web

Te recomendamos seguirnos en nuestras redes para estar al tanto de noticias, cursos gratuitos y memes: Clic aquí para seguirnos en Facebook | Clic aquí para seguirnos en Instagram | Clic aquí para seguirnos en YouTube.

Descargar este artículo en PDF

Lo sentimos, esta opción solo está disponible para los socios. Más información de nuestro grupo de socios.

Mr.CatHack

Déjanos un comentario:

Deja un comentario

LO MAS HOT DE AZUL WEB