a

GeneradorContrasenas

Clase de utilidades que permite la generación de contraseñas de longitud y tipo variable.

El acceso a estos métodos es de manera estática. Por ejemplo:

String pass = GeneradorContraseñas.generarContraseña(TipoContraseña.ALFABETICA);

Nota:

En la prueba visual de la api, existe una prueba de estas funcionalidades en la sección de Generadores.

Índice de contenido

Métodos implementados

Generar contraseña dado un TipoContraseña

  • Arquetipo: generarContraseña(TipoContraseña)
  • Parámetros: TipoContraseña
  • Descripción: Permite generar una contraseña de longitud variable, teniendo como extremos LONGITUD_MINIMA(10) y LONGITUD_MAXIMA(30). Dicha contraseña se generará con caracteres del tipo especificado.
  • Ejemplo de uso:

    String pass = GeneradorContraseñas.generarContraseña(TipoContraseña.ALFABETICA);
    

Generar contraseña dado una longitud y un TipoContraseña

  • Arquetipo: generarContraseña(int, TipoContraseña)
  • Parámetros: Longitud y TipoContraseña
  • Descripción: Permite generar una contraseña de longitud proporcionada y con caracteres del tipo especificado.
  • Ejemplo de uso:

    String pass = GeneradorContraseñas.generarContraseña(20,TipoContraseña.ALFABETICA);
    

Generar contraseña dado una longitud y una piscina de caracteres

  • Arquetipo: generarContraseña(int, CharSequence)
  • Parámetros: Longitud y CharSequence piscina de caracteres
  • Descripción: Permite generar una contraseña de longitud proporcionada y con caracteres del CharSequence pasado.
  • Ejemplo de uso:

    String pass = GeneradorContraseñas.generarContraseña(23,"!@#$*&^)(+{}");
    

Enums

Los enums son:

TipoContraseña

Enum que permite modelar los tipos de contraseñas.

Los tipos de contraseñas actualmente soportados son:

  • ALFANUMERICA: Permite crear contraseñas de tipo alfanumérico, teniendo como CharSequence base a: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  • NUMERICA: Permite crear contraseñas de tipo numérico, teniendo como CharSequence base a: 0123456789
  • ALFABETICA: Permite crear contraseñas de tipo alfabético, teniendo como CharSequence base a: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  • ALFABETICA_MINUSCULA: Permite crear contraseñas de tipo alfabético minúsculo, teniendo como CharSequence base a: abcdefghijklmnopqrstuvwxyz
  • ALFABETICA_MAYUSCULA: Permite crear contraseñas de tipo alfabético mayúsculo, teniendo como CharSequence base a: ABCDEFGHIJKLMNOPQRSTUVWXYZ

Código Fuente

public class GeneradorContraseñas {
	private GeneradorContraseñas(){}

	private static final CharSequence alfaNum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	private static final CharSequence num = "0123456789";
	private static final CharSequence alfa = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	private static final CharSequence alfaMayusc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	private static final CharSequence alfaMinusc = "abcdefghijklmnopqrstuvwxyz";

	private static final int LONGITUD_MINIMA = 10;

	private static final int LONGITUD_MAXIMA = 30;

	private static final Random rnd = new Random();

	private static CharSequence charSequence(TipoContraseña tipoCaracteresContraseña) {
		CharSequence c = null;
		switch(tipoCaracteresContraseña) {
		case ALFANUMERICA:
			c = alfaNum;
			break;
		case NUMERICA:
			c = num;
			break;
		case ALFABETICA:
			c = alfa;
			break;
		case ALFABETICA_MINUSCULA:
			c = alfaMinusc;
			break;
		case ALFABETICA_MAYUSCULA:
			c = alfaMayusc;
			break;
		}
		return c;
	}

	public static String generarContraseña(TipoContraseña tipoCaracteresContraseña) {
		return generarContraseña(rnd.nextInt(LONGITUD_MAXIMA+1-LONGITUD_MINIMA)+LONGITUD_MINIMA,
				tipoCaracteresContraseña).toString();
	}

	public static String generarContraseña(int longitud,TipoContraseña tipoCaracteresContraseña) {
		return generarContraseña(longitud, charSequence(tipoCaracteresContraseña)).toString();
	}

	public static String generarContraseña(int longitud, CharSequence caracteres) {
		StringBuilder s = new StringBuilder(longitud);

		int tamCs = caracteres.length();

		while(longitud-->0) {
			s.append(caracteres.charAt(rnd.nextInt(tamCs)));
		}

		return s.toString();
	}

	public static enum TipoContraseña{

		ALFANUMERICA,

		NUMERICA,

		ALFABETICA,

		ALFABETICA_MINUSCULA,

		ALFABETICA_MAYUSCULA
	}
}

Clases utilizadas (Importaciones)

import java.util.Random;