Validación de contraseñas: Diseña un programa que valide la fortaleza de una contraseña ingresada por el usuario. Una contraseña se considera fuerte si cumple ciertas condiciones, como tener al menos 8 caracteres, incluir letras mayúsculas y minúsculas, números y caracteres especiales.
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
Console.WriteLine("Ingrese una contraseña para validar su fortaleza:");
string contraseña = Console.ReadLine();
bool esFuerte = ValidarFortalezaContraseña(contraseña);
if (esFuerte)
{
Console.WriteLine("La contraseña es fuerte. ¡Bien hecha!");
}
else
{
Console.WriteLine("La contraseña no es lo suficientemente fuerte. Intente mejorarla.");
}
Console.ReadKey();
}
static bool ValidarFortalezaContraseña(string contraseña)
{
// La contraseña debe tener al menos 8 caracteres
if (contraseña.Length < 8)
{
return false;
}
// La contraseña debe contener al menos una letra mayúscula
if (!Regex.IsMatch(contraseña, "[A-Z]"))
{
return false;
}
// La contraseña debe contener al menos una letra minúscula
if (!Regex.IsMatch(contraseña, "[a-z]"))
{
return false;
}
// La contraseña debe contener al menos un número
if (!Regex.IsMatch(contraseña, "[0-9]"))
{
return false;
}
// La contraseña debe contener al menos un carácter especial (p. ej. !@#$%^&*()-_=+[]{}|;:'\",.<>?/)
if (!Regex.IsMatch(contraseña, "[!@#$%^&*()_\\-+=\\[\\]{}|;:'\",.<>?/]"))
{
return false;
}
// Si todas las condiciones se cumplen, la contraseña es fuerte
return true;
}
}
Explicación del código:
Main: El programa inicia solicitando al usuario que ingrese una contraseña para validar su fortaleza. Luego, llama a la función
ValidarFortalezaContraseñapara determinar si la contraseña cumple con las condiciones de fortaleza.ValidarFortalezaContraseña: En este método, se implementan las condiciones para validar la fortaleza de la contraseña. Cada condición se verifica mediante expresiones regulares:
- La contraseña debe tener al menos 8 caracteres (
contraseña.Length < 8). - La contraseña debe contener al menos una letra mayúscula (
Regex.IsMatch(contraseña, "[A-Z]")). - La contraseña debe contener al menos una letra minúscula (
Regex.IsMatch(contraseña, "[a-z]")). - La contraseña debe contener al menos un número (
Regex.IsMatch(contraseña, "[0-9]")). - La contraseña debe contener al menos un carácter especial (
Regex.IsMatch(contraseña, "[!@#$%^&*()_\\-+=\\[\\]{}|;:'\",.<>?/]")).
Si la contraseña cumple con todas las condiciones, se devuelve
true, lo que indica que es una contraseña fuerte. De lo contrario, se devuelvefalse.- La contraseña debe tener al menos 8 caracteres (
Resultados: Después de validar la contraseña, el programa imprimirá un mensaje en la consola para informar al usuario si la contraseña es fuerte o no.
Ejemplo de ejecución:
Supongamos que el usuario ingresa la contraseña "MiContrasena123!".
El programa verificará si cumple con las condiciones de fortaleza:
- La contraseña tiene más de 8 caracteres: Sí (cumple).
- Contiene al menos una letra mayúscula: Sí (M).
- Contiene al menos una letra minúscula: Sí (i).
- Contiene al menos un número: Sí (1).
- Contiene al menos un carácter especial: Sí (!).
En este caso, el programa mostrará el mensaje "La contraseña es fuerte. ¡Bien hecha!" en la consola.

