Os presentamos un programa en Java recién salido del horno. Actualmente en RedesZone tenemos un generador de claves WiFi para hacerlo con Microsoft Office, y también una URL que te lo genera online. En ocasiones, puede que no tengamos Microsoft Office instalado (usuarios de Linux) o puede que no tengamos conexión a internet o la web citada esté de mantenimiento. Por todo ello, hemos creado un programa en Java para ejecutarlo localmente (.JAR) y de esta forma tenerlo disponible siempre que tengamos Java instalado en nuestros equipos. A continuación, os mostramos capturas de pantalla y su funcionamiento.
Este programa está hecho íntegramente con NetBeans 7.1 y todo lo que sabemos de Java gracias a nuestro particular Curso de Java Online. Sirve para generar una clave WPA muy robusta frente a ataques de diccionario y fuerza bruta, de tal forma que nuestra red sea muy difícil de hackear.
La interfaz es muy sencilla como podéis ver en la siguiente foto:
Basta con introducir la longitud de la clave WPA o WPA2 que queramos, debemos tener en cuenta la «nota» del programa, ya que deberemos meter un número entre 8 y 63 ya que como mínimo debemos tener 8 caracteres en una clave WPA y como máximo 63 caracteres.
Modo de funcionamiento
- Introducimos la longitud de la clave, y pinchamos en el botón de «Generar la clave ahora», nos aparecerá la clave generada.
- Hemos introducido una funcionalidad extra, y es que la clave se guarda en un fichero de texto, de esta forma podremos ponerla en los demás equipos y no tenemos que copiarla nosotros mismos en un fichero de texto… el programa lo hará automáticamente.
- Si no nos gusta la clave generada aleatoriamente, pulsamos otra vez y nos generará una nueva clave y sobreescribirá el fichero de texto que hemos creado anteriormente.
Instrucciones para ejecutar el programa
Windows:
- Doble click sobre el archivo .JAR y se abrirá automáticamente la interfaz, si no se abre, debemos hacerlo a través de la consola.
- Abrimos el cmd (símbolo del sistema) y ponemos: java -jar «Ruta del archivo». Ejemplo: java -jar «C:GeneradorWPA_RedesZone.jar»
Linux:
- A través de la consola ponemos java -jar ruta/GeneradorWPA_RedesZone.jar
Errores
- Como todo programa, puede contener errores, hemos probado esta sencilla aplicación y en principio todos los errores que se nos pueden presentar están controlados.
- Si no introducimos ningún número (entero) o introducimos letras nos saldrá un mensaje de error y nos dará la oportunidad de volver a introducir un número entero.
- Si introducimos un número menos de 8 y mayor de 63 nos lanzará un error diciendo que no se puede, y pondremos por defecto el número máximo si te has pasado, o el número mínimo si no has llegado.
Descarga del programa y código fuente de la aplicación
Ya está bien de tanta palabrería, aquí tenéis el programa .JAR:
Descargar generador de claves WPA y WPA2
Descargar proyecto de NetBeans del generador de claves
A continuación, os copio las líneas de código principales del programa para que le echéis un vistazo rápido.
Programa principal Main.java:
[java]
package generador;
/*
* Este programa ha sido realizado por Sergio de Luz (Bron) para www.redeszone.net
*/
public class Main {
public static void main(String[] args) {
Interfaz nuevoGen = new Interfaz();
nuevoGen.setVisible(true);
}
}
[/java]
Interfaz Interfaz.java:
[java]
private static String cadena = «0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,;.:-_{}[]*+-/¿¡?’=)(%#@|!»;
private void jGenerarActionPerformed(java.awt.event.ActionEvent evt) {
//Borramos la clave anterior
jClave.setText(«»);
//Empezamos a generar la nueva
//Tratamiento de la entrada.
try {
int numCaracteres = Integer.parseInt(jNumCaracter.getText());
if (numCaracteres 63) {
JOptionPane.showMessageDialog(this, «ERROR: El número máximo de caracteres en WPA y WPA2 es de 63, introduce un número igual o menor a 63», «Error en la entrada de datos», JOptionPane.ERROR_MESSAGE);
jNumCaracter.setText(«63»);
} else {
BufferedWriter bw = new BufferedWriter(new FileWriter(«clave_wpa.txt»));
//Declaramos las variables necesarias
int longitudCad = cadena.length();
String clave = «»;
String caracter = «»;
/*
*Bucle para el número de caracteres, dentro tenemos la función Math.random
*/para elegir el caracter aleatorio y a continuación meterlos en el String clave.
for (int i = 0; i
int numero = (int) (Math.random() * (longitudCad));
caracter = cadena.substring(numero, numero + 1);
clave = clave + caracter;
}
//Ponemos la clave generada en el cuadro de texto y en el fichero de texto.
jClave.setText(clave);
bw.write(clave);
bw.flush();
bw.close();
}
//Controlamos las excepciones que se pudieran producir.
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(this, «Error: No has introducido un número entero en «Número de caracteres»», «Error en la entrada de datos», JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(this, «Error: «+e,»Erro», JOptionPane.ERROR_MESSAGE);
}
}
[/java]
Comentarios
- Se admiten comentarios y opiniones sobre el programita.
- Se admiten ideas para ampliar la funcionalidad del programa… ¿Qué os gustaría que tuviera más?
Dejadnos vuestro comentario, nos anima a hacer este tipo de cosas!!