Java - analista de sistemas

   
Vista:

analista de sistemas

Publicado por melina (4 intervenciones) el 10/09/2008 00:29:11
Escribir un programa que determine si una contraseña es segura. En este caso se considerará segura una contraseña que tenga al menos 8 caracteres, por lo menos dos de ellos sean letras mayúsculas, al menos tres de ellos sean letras minúsculas y como mínimo tenga dos dígitos numéricos. Sólo se permiten caracteres del alfabeto, dígitos numéricos y el ‘_’ (guión bajo).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:analista de sistemas

Publicado por rubi soto (1 intervención) el 10/09/2008 03:36:15
como puedo convertir enteros a string
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:analista de sistemas

Publicado por Mario (199 intervenciones) el 10/09/2008 08:52:55
Tan sencillo como esto...

String str = "";
int i = 0;

str = String.valueOf(i);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:analista de sistemas

Publicado por Mario (199 intervenciones) el 10/09/2008 08:45:46
Te voy a pegar el código de lo que pides, xq es super sencillo, pero explicartelo paso por paso sería más lioso. Solamente espero que preguntes las dudas que tengas sobre el código para comprenderlo, porque sino no te servirá de nada y volverás a plantear dudas tan sencillas como esta...

Función para determinar si la contraseña es segura:

private static int isContraseñaSegura(String pass){
int error = 0; // Almacenaremos un código numérico que determinará dos tipos de errores: 1.- La contraseña no es segura. 2.- La contraseña no es válida por contener caracteres no válidos.
int contMayusculas = 0; // Contador de letras mayúsculas encontradas
int contMinusculas = 0; // Contador de letras minúsculas encontradas
int contNumeros = 0; // Contador de números encontrados
int longitudPass = 0; // Longitud de la contraseña.
char caracter = 0;

longitudPass = pass.length();

// Si la longitud es menor de 8 caracteres, no hace falta hacer más comprobaciones.
if (longitudPass >= 8){
int i = 0;
while(i<longitudPass && error==0){// Hacemos un bucle para recorrer toda la cadena mientras no se haya determinado ya algún error.
caracter = pass.charAt(i); // Extraemos el caracter de la posición "i"
if(Character.isLowerCase(caracter)){ // Comprobamos si el caracter es una letra minúscula
contMinusculas++;
}
else if(Character.isUpperCase(caracter)){ // Comprobamos si el caracter es una letra mayúscula
contMayusculas++;
}
else if(Character.isDigit(caracter)){ // Comporbamos si el caracter es un dígito
contNumeros++;
}
else if(caracter != '_'){ // Comprobamos si el caracter es un guión bajo.
error = 2; // Asignamos 2 al número de error para determinar que la contraseña no es válida por contener un caracter no especificado.
}
i++;
}
}
else{
error = 1; // Asignamos 1 al número de error para determinar que la contraseña no es segura
}

if(error==0){ // Si tras haber recorrido la cadena no hemos encontrado nada que haya hecho que no sea segura...
if(contMinusculas<3 || contMayusculas<2 || contNumeros<2){
error = 1; // Asignamos 1 al número de error para determinar que la contraseña no es segura
}
}
return error;
}

Para usar luego esa funcion... sería tan secillo como esto:

String pass = "contraseñaDePrueba01";

if(isContraseñaSegura(pass)==0)
System.out.println("Contraseña segura");
else if(isContraseñaSegura(pass)==1)
System.out.println("Contraseña NO segura");
else if(isContraseñaSegura(pass)==2)
System.out.println("Contraseña NO válida");

Lo dicho... espero que preguntes las dudas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:analista de sistemas

Publicado por Mario (199 intervenciones) el 10/09/2008 08:47:31
Te voy a pegar el código de lo que pides, xq es super sencillo, pero explicartelo paso por paso sería más lioso. Solamente espero que preguntes las dudas que tengas sobre el código para comprenderlo, porque sino no te servirá de nada y volverás a plantear dudas tan sencillas como esta...

Función para determinar si la contraseña es segura:

private static int isContraseñaSegura(String pass){
int error = 0; // Almacenaremos un código numérico que determinará dos tipos de errores: 1.- La contraseña no es segura. 2.- La contraseña no es válida por contener caracteres no válidos.
int contMayusculas = 0; // Contador de letras mayúsculas encontradas
int contMinusculas = 0; // Contador de letras minúsculas encontradas
int contNumeros = 0; // Contador de números encontrados
int longitudPass = 0; // Longitud de la contraseña.
char caracter = 0;

longitudPass = pass.length();

// Si la longitud es menor de 8 caracteres, no hace falta hacer más comprobaciones.
if (longitudPass >= 8){
int i = 0;
while(i<longitudPass && error==0){// Hacemos un bucle para recorrer toda la cadena mientras no se haya determinado ya algún error.
caracter = pass.charAt(i); // Extraemos el caracter de la posición "i"
if(Character.isLowerCase(caracter)){ // Comprobamos si el caracter es una letra minúscula
contMinusculas++;
}
else if(Character.isUpperCase(caracter)){ // Comprobamos si el caracter es una letra mayúscula
contMayusculas++;
}
else if(Character.isDigit(caracter)){ // Comporbamos si el caracter es un dígito
contNumeros++;
}
else if(caracter != '_'){ // Comprobamos si el caracter es un guión bajo.
error = 2; // Asignamos 2 al número de error para determinar que la contraseña no es válida por contener un caracter no especificado.
}
i++;
}
}
else{
error = 1; // Asignamos 1 al número de error para determinar que la contraseña no es segura
}

if(error==0){ // Si tras haber recorrido la cadena no hemos encontrado nada que haya hecho que no sea segura...
if(contMinusculas<3 || contMayusculas<2 || contNumeros<2){
error = 1; // Asignamos 1 al número de error para determinar que la contraseña no es segura
}
}
return error;
}

Para usar luego esa funcion... sería tan secillo como esto:

String pass = "contraseñaDePrueba01";

if(isContraseñaSegura(pass)==0)
System.out.println("Contraseña segura");
else if(isContraseñaSegura(pass)==1)
System.out.println("Contraseña NO segura");
else if(isContraseñaSegura(pass)==2)
System.out.println("Contraseña NO válida");

Lo dicho... espero que preguntes las dudas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Para mario

Publicado por Melina (4 intervenciones) el 10/09/2008 14:36:56
Muchas Gracias. Lo voy a ver paso por paso y cualquier duda te consulto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar