Contraseña segura
Código
import java.util.Scanner;
public class VerificarContrasena {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
// Solicitar la contraseña al usuario
System.out.print("Introduce la contraseña (o escribe 'salir' para
terminar): ");
String contrasena = scanner.nextLine();
if (contrasena.equalsIgnoreCase("salir")) {
System.out.println("Programa terminado.");
break;
// Verificar si la contraseña es segura
if (esContrasenaSegura(contrasena)) {
System.out.println("✅ La contraseña es segura.");
} else {
System.out.println("❌ La contraseña no es segura.
Requisitos:");
if (contrasena.length() < 10) {
System.out.println("- Debe tener al menos 10 caracteres.");
}
if (!contieneLetra(contrasena)) {
System.out.println("- Debe contener al menos una letra (A-Z
o a-z).");
if (!contieneDigito(contrasena)) {
System.out.println("- Debe contener al menos un dígito (0-
9).");
if (!contieneSimbolo(contrasena)) {
System.out.println("- Debe contener al menos un símbolo
(no letra ni dígito).");
System.out.println(); // Línea en blanco para separar
scanner.close();
// Método principal para verificar si la contraseña es segura
public static boolean esContrasenaSegura(String contrasena) {
return contrasena.length() >= 10 && contieneLetra(contrasena) &&
contieneDigito(contrasena) && contieneSimbolo(contrasena);
public static boolean contieneLetra(String texto) {
for (char c : texto.toCharArray()) {
if (Character.isLetter(c)) {
return true;
return false;
public static boolean contieneDigito(String texto) {
for (char c : texto.toCharArray()) {
if (Character.isDigit(c)) {
return true;
return false;
public static boolean contieneSimbolo(String texto) {
for (char c : texto.toCharArray()) {
if (!Character.isLetterOrDigit(c)) {
return true;
return false;
Pasos
1. Importar librerías necesarias
Se importa la clase Scanner, que permite leer datos que el usuario
escribe por teclado.
2. Definición de la clase principal
Se crea una clase pública llamada VerificarContrasena.
Todo el programa va a estar dentro de esta clase.
3. Método principal main()
Es el punto de entrada del programa: todo empieza a ejecutarse
aquí.
Se crea un objeto scanner para leer lo que el usuario escriba en la
consola.
4. Ciclo para pedir contraseñas
Se inicia un ciclo infinito (while (true)) que se repetirá hasta
que el usuario escriba "salir".
Se muestra un mensaje pidiéndole al usuario una
contraseña.
Lo que el usuario escriba se guarda en la variable
contrasena.
Si el usuario escribe "salir", el programa muestra un mensaje
de despedida y sale del ciclo usando break.
5. Verificar si la contraseña es segura
Se llama al método esContrasenaSegura(contrasena) para
comprobar si cumple los requisitos.
Si sí, se muestra el mensaje "La contraseña es segura".
Si no, entra al else y muestra los errores específicos:
Se muestran mensajes indicando qué requisito(s) no se
cumple(n).
Se imprime una línea en blanco para que el siguiente
mensaje quede separado y el programa sea más legible.
6. Cerrar el scanner
Se cierra el scanner al terminar el programa, para liberar
recursos.
7. Método esContrasenaSegura()
Este método recibe una contraseña.
Retorna true si cumple TODOS los requisitos:
Tiene al menos 10 caracteres.
Tiene al menos una letra.
Tiene al menos un dígito.
Tiene al menos un símbolo.
Si falta algo, devuelve false.
8. Métodos auxiliares
Estos métodos ayudan a verificar partes específicas:
a) Verificar letras
Recorre cada caracter de la contraseña.
Si encuentra una letra, devuelve true.
Si no encuentra ninguna, devuelve false.
b) Verificar dígitos
Recorre cada caracter.
Si encuentra un número, devuelve true.
Si no, devuelve false.
c) Verificar símbolos
Recorre cada caracter.
Si encuentra un símbolo (algo que NO sea letra ni número),
devuelve true.
Si todo es letra o número, devuelve false.