[Java] Generador de contraseñas + si es fuerte o no

Iniciado por hackmin, Marzo 16, 2015, 04:45:10 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 16, 2015, 04:45:10 PM Ultima modificación: Marzo 20, 2015, 08:54:02 AM por Expermicid
Código: java
package poo;

import java.util.Random;

public class Password {

public static void main(String[] args) {
Password longitud = new Password(8);
int indice = longitud.Longitud;
int esFuerte = 0;

for(int i = 1; i <= indice ;i++){
System.out.print(Password.generarPassword());
Password.GetSeguridadContraseña();
}
System.out.println();
System.out.println(Password.esFuerte());

}


protected static int Longitud;
private static char GetAscii;
private static int NumAleatorio;
private static int esFuerte;
private static int Minuscula =0 ;
private static  int mayuscula = 0 ;
private static int Numeros = 0;

public Password(){
this.Longitud = 8;
}
public Password(int longitud){
this.Longitud = longitud;
}

public static char generarPassword(){
GetAscii = 'A';
  for(int i = 1; i <= Longitud;i++){

  NumAleatorio = 32+(int)(Math.random()* 92);
  GetAscii = (char)NumAleatorio;
  if(i == Longitud){
return GetAscii; 
  }

  }
   return GetAscii;
}


  public static void GetSeguridadContraseña(){



if(NumAleatorio >= 65 && NumAleatorio <= 90 ){
mayuscula++;
}
if(NumAleatorio >= 97 && NumAleatorio <= 122 ){
Minuscula++;
}

if(NumAleatorio >= 48 && NumAleatorio <= 57 ){
Numeros++;
}



 
  }
 
  public static  String esFuerte(){
 
  if(Minuscula > 1 && mayuscula > 2 && Numeros > 5){
return "La contraseña es Segura!";
}
  else{
  return "la contraseña es Débil!!";
  }
 
  }

 

}




Mi  pregunta es: ¿una contraseña wifi puede obtener 64 caracteres en total? si es así admite todo tipo de carcateres?, es decir Astericos,letras,numeros?

Hola bro! Muy buen aporte!
Respondiendo un poco a tu pregunta, te dejo esta tabla con los cifrados WEP y WPA y la cantidad de caracteres disponibles en cada uno de ellos

Código: text
WEP: 
64-bits = 10 caracteres
128-bits = 26 caracteres
256-bits = 58 caracteres

WPA:
64-bits = 8 caracteres

WPA2:
160-bits = 20 caracteres
506-bits = 64 caracteres


Espero que te sirva y te dejo puntos por tu aporte!

Saludos!
ANTRAX


Antrax, muchas gracias!

Entonces lo recomendable sería ocupar todos los caracteres por así decirlo no?

Entonces si generamos una contraseña de 64 caracteres como por ejemplo esta:

Código: php
;9_ptq/dF/A*Lix]fIX)yl$)jZxCzV(`6H/g?vyD#o8>+ nBE.P?^-*$hiIAUyE*


En la web de kaspersky dice No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Que un ordenador de casa decente tardaría mas de 10.000 siglos en descrifarla...

Entonces me pregunto...

Si una persona pone esa contraseña en su red wifi, practicamente estaría 100% protegido?

y otra cosa en la tabla que tu me mostrastes, sale:
506-bits

¿Eso que es?, es decir los bits que hay en 64 caracteres o la seguridad?

Muy bueno,le ha dado ideas a este novato. :D graciad

En la WPA2 tenes un Máximo de 63 caracteres/506-bits.
De igual forma, nunca nadie está 100% seguro ponga la password que ponga.
Para poder sacar una WPA podes hacerlo de varias formas..
Por un lado con diccionario o fuerza bruta, que ahí si demoraría 10.000 siglos en romperla, y por otro lado tenes métodos como el Twin Attack, el cual consiste en crear un AP falso y que el cliente se conecte ahí poniendo su contraseña. Una vez hecho esto, el atacante obtendrá esa contraseña sin necesidad de reventarla por fuerza bruta

Saludos!
ANTRAX


Ademas como aporte a los comentarios de Antrax y adicionar que toda contraseña es rompible a los ataques de fuerza bruta, o bien tecnicas adiciona Ing Social, con ello ya esta hecho todo.

Regards,
Snifer
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Hola hackmin genial tu código,  pero creo que hay un error a la hora de la validación o si no es así corrígeme por favor

cuando se llama a la función  esFuerte :

Código: php
 public static  String esFuerte(){
                 
                  if(Minuscula > 1 && mayuscula > 2 && Numeros > 5){
                                return "La contraseña es Segura!";
                         }
                  else{
                          return "la contraseña es Débil!!";
                  }
                 
          }


está validando si el String que se generó como contraseña contiene mas de 1 minúscula, mas de 2 mayúsculas y que contenga mas de 5 números verdad ?
si no es así corrígeme por favor

pero pasa que me genera este pass:
CitarRo%B(hG7
La contraseña es Segura!

el cual contiene mas de 1 minúscula, mas de 2 mayúsculas, PERO no tiene sino 1 solo numero y aún así me marca como segura la contraseña.


Si no entendí bien tu código espero me disculpes, es solo una apreciación.

de todos modos gran aporte :D

Salu2
____________________________

my best crime is myself