JAVA: Generar contraseña aleatoria.

En nuestro siguiente articulo en myvlcsys, os mostramos el código en JAVA para crear contraseñas aleatorias, el programa nos solicitará el número de caracteres que queremos estableces para la contraseña, mediante el método de solicitud de datos mediante teclado nextInt(), de la clase Scanner, del paquete java.ultil.Scanner;

Una vez que le indiquemos el número de caracteres que queremos para nuestra contraseña, haremos el llamamiento al método generadorContraseñasMyVlcsys(), al que le pasamos el número de caracteres que tendrá nuestra contraseña como parámetro. Todo el codigo JAVA lo englobaremos entre las sentencias try y catch, para tener el control de errores oportuno, ya que usamos la inserción de texto mediante teclado. En la sentencia de catch controlamos que con la Excepción InputMismatchException, que los caracteres que introducimos mediante teclado son sólo números. cómo podemos observar en el siguiente ejemplo:

Comprobación de que introducimos caracteres numéricos,

En el programa usamos el Clase Random de JAVA, en método que hemos llamado generadorContraseñasMyVlcsys() usando el método de la misma ints(int i, int t), indicando el limite númerico para generar los número aleatorios, de este modo podemos controlar el rango de caracteres de código ASCII del que nos creará los número aleatorios.

Estableceremos el número de caracteres que tiene el Random con el método .limit(nCaracteres). que es una funcional de la clase Random.

Después de generar la contraseña aleatoria la pasaremos a formato String con el método to.String.

Por último devolvemos el valor de nuestro procedimiento con la sentencia return, para más tarde mostrarla en pantalla el resultado del mismo.

Lo que nos mostrará por pantalla nuestro programa es lo siguiente:

Programa en ejecución.

Aquí os dejamos el código que hemos generado para nuestro programa de generador de contraseñas:

package myVlcsys;

import java.util.InputMismatchException;
import java.util.Random;
import java.util.Scanner;

public class generarContrasenasAleatorias {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner reader = new Scanner(System.in) ;
		
		try 
		{
			System.out.println("Cuántos caracteres quiere que tenga su contraseña:");
			
			int numeroCaracteres=reader.nextInt();
			
			System.out.println("\nEl número de caracteres para la contraseña es " + numeroCaracteres);	
			
			System.out.println("\nLa contraseña generada aleatoriamente es: ");
			
			System.out.println("\n"+generadorContraseñasMyVlcsys(numeroCaracteres));
		}
		catch (InputMismatchException ime){
		    System.out.println("¡Cuidado! Solo puedes insertar números. ");
		    reader.next();
		 }
					
	}
    
    public static String  generadorContraseñasMyVlcsys(int numeroCaracteres)
    {
    	
        int leftLimit = 48; // numeral '0'
        int rightLimit = 122; // letter 'z'
        int nCaracteres = numeroCaracteres;
        Random random = new Random();

        String generatedCadenaAleatoria = random.ints(leftLimit, rightLimit + 1)
          .filter(i -> (i <= 90 || i >= 97))
          .limit(nCaracteres)
          .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
          .toString();

        	//  System.out.println("2-  "+generatedString);

        return generatedCadenaAleatoria;
        
       
    }
}