Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - udlea2014

#1
Programación General / Hola foro!
4 Julio 2014, 03:38 AM
Soy un nuevo miembro

y doy los saludos al foro!

estoy estudiando tecnicatura en  programacion "1er año"

y encontre este sitio me parecio muy bueno!

saludos!


#2
/*
clase llamada Password:
   atributos longitud y contraseña . Por defecto,
   longitud =8.
    Los constructores:
    Un constructor por defecto.
    Un constructor con la longitud que nosotros le pasemos.
   Generara una contraseña aleatoria con esa longitud.
    Los métodos:
        esFuerte(): devuelve un booleano si es fuerte o no, para que sea
      fuerte debe tener mas de 2 mayúsculas, mas de 1 minúscula y mas de 5 números.
        generarPassword():  genera la contraseña del objeto con la longitud que tenga.
        Método get para contraseña y longitud.
        Método set para longitud.
clase clase ejecutable:
    Crea un array de Passwords con el tamaño que tu le indiques por teclado.
    Crea un bucle que cree un objeto para cada posición del array.
    Indica también por teclado la longitud de los Passwords (antes de bucle).
    Crea otro array de booleanos donde se almacene si el password del array
   de Password es o no fuerte (usa el bucle anterior).
    Al final, muestra la contraseña y si es o no fuerte (usa el bucle anterior).
   Usa este simple formato:

contraseña1 valor_booleano1

contraseña2 valor_bololeano2
*/
import java.util.*;

public class Password{
   private int longitud;
   private String contrasenia;
   private final int LONG_DEFUAULT=8;
   private char [] abecedarioMayusculas = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
   'K', 'L', 'M','N','O','P','Q','R','S','T','U','V','W', 'X','Y','Z'};
   private char [] abecedarioMinusculas ={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
   'k', 'l', 'm','n','o','p','q','r','s','t','u','v','w', 'x','y','z'};
   private char[] numeros={'0','1','2','3','4','5','6','7','8','9'};
   
   //constructores
   public Password(){
      this.longitud=LONG_DEFUAULT;
      this.contrasenia=contrasenia;
   }
   public Password(int longitud){
      this.longitud=longitud;
      this.contrasenia=generarPassword(longitud);
   }
   //getting
   public int getLongitud(){
      return this.longitud;
   }
   public String getContrasenia(){
      return this.contrasenia;
   }
   //setting
   public void setLongitud(int longitud){
      this.longitud=longitud;
   }
   public void setContrasenia(String contrasenia){
      this.contrasenia=contrasenia;
   }
   
   public String generarPassword(int longitud){
      int aleatorio,aleatorio1;
      int contMinusculas=0;
      int contMayusculas=0;
      int contNumeros=0;
      int cont=0;
      int i=0;
      int longitudMayusculas=(longitud*3/11);
      int longitudNumeros=(longitud*6/11);
      int longitudMinusculas=(longitud-longitudMayusculas-longitudNumeros);
      StringBuilder str=new StringBuilder();
      Random rnd=new Random();
      
      while(longitud>cont){
         aleatorio=(int)(rnd.nextDouble()*3);
         if(aleatorio==0 && contMinusculas<longitudMinusculas){
            aleatorio1=(int) (rnd.nextDouble()*(abecedarioMinusculas.length-1));
            str.append(abecedarioMinusculas[aleatorio1]);
            cont++;
            contMinusculas++;
         }
         if(aleatorio==1 && contMayusculas<longitudMayusculas){
            aleatorio1=(int) (rnd.nextDouble()*(abecedarioMayusculas.length-1));
            str.append(abecedarioMayusculas[aleatorio1]);
            cont++;
            contMayusculas++;
         }
         if(aleatorio==2 && contNumeros<longitudNumeros){
            aleatorio1=(int) (rnd.nextDouble()*9+0);
            str.append(aleatorio1);
            cont++;
            contNumeros++;
         }
         
      }
      return str.toString();
   }
   public boolean isEsFuerte(String contrasenia){
      char comparar;
      boolean encontrado=false;
      boolean cond=false;
      int contNumeros=0;
      int contMayus=0;
      int contMinus=0;
      int k=0;
      for(int i=0; i<this.longitud ;i++){
         comparar=contrasenia.charAt(i);
         k=0;
         encontrado=false;
         while(!(k==(26-1)) && !(comparar==(abecedarioMayusculas[k]))){
            k++;
         }
         if(comparar==(abecedarioMayusculas[k])){
            contMayus++;
            encontrado=true;
         }
         
         k=0;
         while(encontrado==false && !(k==(26-1)) && !(comparar==(abecedarioMinusculas[k]))){
            k++;
         }
         if(comparar==(abecedarioMinusculas[k])){
            contMinus++;
            encontrado=true;
         }
         k=0;
         while(encontrado==false && !(k==(10-1)) && !(comparar==(numeros[k]))){
            k++;
         }
         if(comparar==(numeros[k])){
            contNumeros++;
         }
      }
      if(contMinus>1 && contMayus>2 && contNumeros>5){
         cond=true;
      }
   
   return cond;
   }
   
   
}

//@udlea2014

import java.util.*;

public class Ejecutable{
   public static void main(String[]args){
      int numeroDePass;
      Scanner tec=new Scanner(System.in);
      System.out.println("Ingrese el numero de contraseñas a construir");
      numeroDePass=tec.nextInt();
      Password pass[]=new Password[numeroDePass];
      String cond,fuerte;
      int longitud;
   
      for(int i=0;i<numeroDePass;i++){
         System.out.println("Desea ingresar la longitud de la contraseña? ");
         cond=tec.next();
         if(cond.toLowerCase().equals("si")){
            System.out.println("Ingrese su longitud y se creara automaticamente su contraseña ");
            longitud=tec.nextInt();
            pass=new Password(longitud);
            
         }else{
            pass=new Password();
            System.out.println("Escriba su contraseña de  8 caracteres:");
            pass.setContrasenia(tec.next());
         }
      }
      for(int i=0;i<numeroDePass;i++){
         if(pass.isEsFuerte(pass.getContrasenia())==true){
            fuerte="fuerte!";
            
         }else{
            fuerte="debil";
         }
         
         System.out.println("la contraseña Nº: "+(i+1)+" es igual a: "+pass.getContrasenia()+" "+" " +fuerte);
         
      }
      
   
   }

}


//@udlea2014