Cómo crear una aplicación en C# de Visual Studio .Net que genera contraseñas aleatorias. Permitirá indicar los posibles caracteres de la contraseña, si queremos incluir mayúsculas, minúsculas, números y caracteres especiales. La aplicación permite indicar el tamaño de la contraseña y el número de contraseñas a generar. Además, incluye un control para que las contraseñas generadas cumplan los criterios elegidos.

Crear proyecto en Microsoft Visual Studio Community 2019 de Aplicación Windows Forms C#

En primer lugar crearemos un nuevo proyecto. En nuestro caso usaremos el IDE gratuito de programación Microsoft Visual Studio Community 2019. Crearemos un proyecto de tipo «Aplicación de Windows Forms (.NET Framework)» de C#:

Crear proyecto en Microsoft Visual Studio Community 2019 de Aplicación Windows Forms C#

En el formulario principal de la aplicación agregaremos los siguientes componentes:

Agregaremos las referencias necesarias, desde el menú «Proyecto»

Crear proyecto en Microsoft Visual Studio Community 2019 de Aplicación Windows Forms C#

Marcaremos las siguientes referencias:

  • System.Core
  • System.Xml
  • System.Net.Http
  • System.Data
  • System.Drawing
  • System
  • System.Data.DataSetExtensions
  • System.Deployment
  • System.Xml.Linq
  • Microsoft.CSharp
  • System.Windows.Forms

Código fuente de la aplicación C# que genera contraseñas aleatorias

La aplicación tendrá una clase, con el nombre GeneradorContrasenasAleatorias, que será la encargada de generar las contraseñas aleatorias. Y tendrá un formulario principal donde se podrán estableer las opciones de las contraseñas a generar. A continuación mostramos el código de la clase y del formulario.

El código fuente completo en C# puede descargargarse gratuitamente desde el siguiente enlace:

Código fuente de la clase para generar contraseñas aleatorias en C#

Agregaremos una nueva clase a nuestro proyecto C#. Pulsaremos con el botón derecho sobre la solución y elegiremos en el menú emergente «Agregar» – «Clase»:

Código fuente de la aplicación C# que genera contraseñas aleatorias

Introduciremos el nombre «GenerarContrasenaAleatoria» y pulsaremos «Agregar»:

Código fuente de la aplicación C# que genera contraseñas aleatorias

Y agregaremos el siguiente código fuente en C# a la clase creada:

Código fuente del formulario principal de la aplicación que genera contraseñas aleatorias

El formulario principal, llamado formGenContrasena, tendrá el siguiente código fuente C#:

La aplicación Generador de contraseñas aleatorias en funcionamiento

La aplicación tiene las siguientes opciones de configuración antes de generar las contraseñas:

  • Que contengan letras minúsculas: si marcamos esta opción las contraseñas generadas incluirán alguna letra minúscula de las indicadas en el cuadro de texto.
  • Que contengan letras mayúsculas: si marcamos esta opción las contraseñas generadas incluirán alguna letra mayúscula de las indicadas en el cuadro de texto.
  • Que contengan números: si marcamos esta opción las contraseñas generadas incluirán algún número de los indicados en el cuadro de texto.
  • Que contengan caracteres especiales: si marcamos esta opción las contraseñas generadas incluirán algún carácter especial de los indicados en el cuadro de texto.
  • Tamaño de la contraseña: número de caracteres que tendrán las contraseñas generadas aleatoriamente.
  • Nº reintentos máximo si la contraseña no cumple: si se marcan todos los criterios de fortaleza de la contraseña anteriores y se elige una tamaño de contraseña pequeño, puede que la generación aleatoria no genere contraseñas que cumplan estos criterios. Por ello, la aplicación permite realizar un número de reintentos hasta obtener contraseñas que cumplan los criterios. Para evitar un posible bucle infinito (que puede suceder si no se logra generar contraseñas aleatorias que cumplan los criterios elegidos) se debe establecer aquí un número máximo de reintentos. Es recomendable no sobrepasar el millón, dado que la generación podría tardar mucho tiempo.
  • Nº de contraseñas a generar: el número de contraseñas aleatorias que se generarán.

Una vez introducidos los criterios pulsaremos en «Generar contraseñas»:

La aplicación Generador de contraseñas aleatorias en funcionamiento

El proceso puede tardar unos minutos en función de los criterios elegidos, del número de contraseñas, del tamaño y de los caracteres elegidos para la generación. Mostrará una barra de progreso que es orientativa, indicando el progreso de la generación de las contraseñas. Una vez concluido mostrará las contraseñas en el cuadro de texto, para que se puedan copiar y pegar y mostrará el número de reintentos total que ha usado para generarlas y si ha generado alguna contraseña que no cumpla alguno de los criterios:

La aplicación Generador de contraseñas aleatorias en funcionamiento

En el ejemplo vemos que ha generado 10 contraseñas, con tamaño de 11 caracteres, que deben incluir mayúsculas, minúsculas, números y caracteres especiales. Para generar estas contraseñas cumpliendo estos criterios ha empleado algo más de 13 millones de intentos. En el ejemplo ha tadado 3 segundos en la generación.

Descarga del código fuente completo en C# y en Microsoft Visual Studio Community 2019 de la aplicación Generador de contraseñas aleatorio

A continuación mostramos el enlace para la descarga de la aplicación y el código fuente completo en C#: