Generacion de contrase├▒as (passwords)

En esta entrada, incluimos una clase con utilidades para generar contrase├▒as de todos los tipos posibles.

El mecanismo para generar las contrase├▒as es extraer aleatoriamente caracteres de la cadena que contiene los tipos posibles caracteres para la contrase├▒a. Al m├ętodo getPassword() se le puede suministrar tanto los tipos de caracteres posibles para la contrase├▒a como la longitud deseada. Para facilitar la generaci├│n de las contrase├▒as m├ís comunes, se han implementado un par de m├ętodos, getPinNumber(), que genera una contrase├▒a de 4 n├║meros, y getPassword(), que sin argumentos generan una contrase├▒a de n├║meros y letras de longitud 8.

Si, por ejemplo, se quiere generar una contrase├▒a de longitud 10 en la que se quieran incluir s├│lo letras y adem├ís las letras ├▒ y ├Ĺ, se deber├şa utilizar esta clase de la siguiente forma:

PasswordGenerator.getPassword(
		PasswordGenerator.MINUSCULAS+
		PasswordGenerator.MAYUSCULAS+
		PasswordGenerator.ESPECIALES,10);

La clase que genera las contrase├▒as es la siguiente

public class PasswordGenerator {
 
	public static String NUMEROS = "0123456789";
 
	public static String MAYUSCULAS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
	public static String MINUSCULAS = "abcdefghijklmnopqrstuvwxyz";
 
	public static String ESPECIALES = "├▒├Ĺ";
 
	//
	public static String getPinNumber() {
		return getPassword(NUMEROS, 4);
	}
 
	public static String getPassword() {
		return getPassword(8);
	}
 
	public static String getPassword(int length) {
		return getPassword(NUMEROS + MAYUSCULAS + MINUSCULAS, length);
	}
 
	public static String getPassword(String key, int length) {
		String pswd = "";
 
		for (int i = 0; i < length; i++) {
			pswd+=(key.charAt((int)(Math.random() * key.length())));
		}
 
		return pswd;
	}
}

Deje una respuesta

Se debe registrar para escribir un comentario.