Generar contraseñas aleatorias en C#

Al generar contraseñas aleatorias en C# es posible definir los caracteres permitidos o los deseados, utilizando la clase Random es posible.

Entre los puntos están que la contraseña tenga ciertas cualidades: números, letras, caracteres, etc.

Podría interesarte Como crear una contraseña segura  

Podemos obligar al usuario a seguir los requisitos para una contraseña segura, para las recuperaciones es necesario generar una temporal. En las contraseñas temporales debemos de seguir las mismas reglas de seguridad.

Generar contraseñas aleatorias

Veamos un ejemplo para identificar las partes del código fuente:

Random rdn = new Random();
string caracteres = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890%$#@";
int longitud = caracteres.Length;
char letra;
int longitudContrasenia = 10;
string contraseniaAleatoria = string.Empty;
for (int i = 0; i < longitudContrasenia; i++)
{
    letra = caracteres[rdn.Next(longitud)];
    contraseniaAleatoria += letra.ToString();
}
//La contraseña es: r%CAdeZ07l

1) Instanciamos una variable de la clase Random

2) La variable caracteres contiene las letras para generar la contraseña.

3) Obtenemos el total de letras de la variable caracteres.

4) Declaramos una variable de tipo carácter.

5) Tamaño de la contraseña aleatoria a generar.

6) Declaramos la variable contraseniaAleatoria para guardar la contraseña generada.

7) Mediante el ciclo for realizamos 10 vueltas para obtener las letras de la variable caracteres.

9) En letra guardamos el carácter obtenido, la variable de caracteres es un array y del que obtenemos con el ramdom (rdn) un carácter.

10) En contraseniaAleatoria concatenamos la variable letra con contraseniaAleatoria, para armar la cadena.

contraseniaAleatoria = contraseniaAleatoria + letra.ToString();

12) El resultado final es una contraseña que incluye los caracteres que establecimos.

Podría interesarte Generar identificadores con Guid en C#  

Observaciones

Es posible generar contraseñas aleatorias con C# seguras estableciendo en los caracteres permitidos caracteres especiales.

Existe la posibilidad de que se genere una contraseña con solo números y letras, que es insegura. Puedes agregar una validación de contraseña que busque en la cadena final un carácter especial.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *