Crear un generador de contraseñas al azar | Proyecto Java para principiantes

Hoy crearemos un generador de contraseñas aleatorias que crea contraseñas con números y letras aleatorios!

Para hacer esto usaremos ASCII. ASCII es un idioma en el que todos los caracteres posibles están representados por un número. Este estándar asegura que las computadoras puedan comunicarse entre sí acerca de los personajes correctamente. Este es un proyecto más desafiante para los principiantes, pero ciertamente tiene la capacidad de hacerlo siempre que esté familiarizado con los conceptos de Java como condicionales, ciclos, funciones y números aleatorios.

Mire el video tutorial para ver cómo codificamos este juego paso a paso, y continúe leyendo esta publicación para obtener más detalles.

¿Para quién es este proyecto?

Los resultados del aprendizaje para el proyecto de codificación Java para principiantes Random Password Generator.

Esta información del proyecto y el resumen de los resultados del aprendizaje lo ayudarán a decidir si este proyecto de codificación Java es adecuado para usted.

Este proyecto se incluye en nuestra clase de codificación de nivel 1 de Juni Java para niños . Este tutorial de Java para principiantes es para estudiantes que desean un proyecto de desafío difícil, alrededor de 50-75 líneas de código. Debe revisar las variables, condicionales, bucles y entradas y salidas de antemano para aprovechar al máximo este proyecto.

Algunos otros proyectos que puede probar primero para practicar más con Java para principiantes son nuestros tutoriales Java Tic Tac Toe y Java Rock Paper Scissors .

Para obtener resultados de aprendizaje, obtendrá mucha práctica con funciones, números aleatorios, ASCII y matrices. Se estima que este proyecto le llevará entre 30 y 45 minutos, ¡pero debe moverse más rápido o más lento a su propio ritmo!

Demo del proyecto

Antes de comenzar, vea cómo funciona nuestro proyecto terminado como referencia. ¡Mire el video o haga clic en ejecutar para ver el proyecto usted mismo!

También puede ver el código de la solución de mi proyecto si se queda atascado.https://repl.it/@JuniBlog/Random-Password-Generator?lite=true

Qué debe tener en cuenta antes de comenzar:

  • Nuestro programa nos pide que ingresemos la cantidad de contraseñas aleatorias que queremos y cuánto tiempo deben tener.
  • Luego imprime la lista de contraseñas aleatorias que generó.
  • Tenga en cuenta que las contraseñas aleatorias constan de letras mayúsculas y minúsculas, ¡así como números!

Pasos para codificar el proyecto:

  1. Pídale al usuario que ingrese el número total de contraseñas aleatorias que desea.
  2. Pregunte al usuario cuántos caracteres quiere que tengan sus contraseñas. (¡12-15 caracteres es una longitud de contraseña segura!)
  3. Cree una función que genere un carácter aleatorio, que puede ser un número, una letra minúscula o una letra mayúscula.
  4. Cree una contraseña aleatoria recorriendo el número total de contraseñas y recorriendo la longitud de las contraseñas.
  5. Almacene cada contraseña aleatoria que genere en una matriz.
  6. Cree una función para imprimir su matriz de contraseñas.

¿Cómo realizamos cada uno de estos pasos?

Paso 1: Pídale al usuario que ingrese la cantidad total de contraseñas aleatorias que desea.

  • Primero necesitamos escribir import java.util.Scanneren la parte superior de nuestro código.
  • A continuación, podemos crear una variable de escáner escribiendo Scanner in = new Scanner(System.in).
  • Finalmente, imprimamos un mensaje para que el usuario ingrese la cantidad de contraseñas que desea generar y almacene su respuesta en un número entero.
  • Sugerencia: asegúrese de usar in.nextInt()para obtener la entrada del usuario como un número entero.

Paso 2: Pregunte al usuario cuántos caracteres desea que tengan sus contraseñas.

  • Según los expertos en seguridad, ¡de 12 a 15 caracteres es una longitud de contraseña segura !
  • Podemos imprimir un mensaje para que el usuario ingrese la longitud de sus contraseñas y almacene su respuesta en un número entero, tal como hicimos con el número total de contraseñas.

Paso 3: Cree una función que genere un carácter aleatorio, que puede ser un número, una letra minúscula o una letra mayúscula.

  • Según nuestra tabla ASCII, ‘0’ – ‘9’ es 48-57 en ASCII, ‘A’ – ‘Z’ es 65-90 en ASCII y ‘a’ – ‘z’ es 97-122 en ASCII. ¡Esta información será muy importante más adelante!

Lo primero que queremos hacer es hacer un número aleatorio que represente todos los caracteres posibles.

  • Hay 10 números, 26 letras minúsculas y 26 letras mayúsculas, por lo que hay 10 + 26 + 26 = 62 posibilidades de caracteres.
  • Podemos escribir (int)(Math.random() * 62)para obtener un número entero aleatorio que incluya 0 y excluya 62.

Ahora que hemos establecido que nuestro número aleatorio está entre 0 y 61 (inclusive), queremos pensar en cómo dividiremos los valores de nuestro número aleatorio para que correspondan con números, letras mayúsculas y minúsculas.

  • Los 10 números posibles pueden estar entre 0 y 9 (inclusive). Las 26 letras mayúsculas posibles pueden estar entre 10 y 35 (inclusive). Las 26 letras minúsculas posibles pueden estar entre 36 y 61 (inclusive).

En otras palabras, si nuestro número aleatorio está entre 0 y 9 (inclusive), podemos decir que es un número. Si nuestro número aleatorio está entre 10 y 35 (inclusive), podemos decir que es una letra mayúscula. Si nuestro número aleatorio está entre 36 y 61 (inclusive), podemos decir que es una letra minúscula.

Podemos usar condicionales para verificar si nuestro número aleatorio corresponde a números, letras mayúsculas y minúsculas. Nuestro objetivo es cambiar el intervalo de números aleatorios que tenemos actualmente para números, letras mayúsculas y minúsculas a sus intervalos ASCII apropiados.

  • Los números son 48-57 en ASCII, y actualmente los tenemos en el intervalo de números aleatorios de 0-9, por lo que necesitamos convertir de 0-9 a 48-57. Para hacer esto, simplemente podemos sumar 48 a nuestro número aleatorio porque 48-0 = 48.
  • Las letras mayúsculas son 65-90 en ASCII, y actualmente las tenemos en el intervalo de números aleatorios de 10-35, por lo que necesitamos convertir de 10-35 a 65-90. Para hacer esto, simplemente podemos agregar 55 a nuestro número aleatorio porque 65-10 = 55.
  • Las letras minúsculas son 97-122 en ASCII, y actualmente las tenemos en el intervalo de números aleatorios de 36-61, por lo que necesitamos convertir de 36-61 a 97-122. Para hacer esto, simplemente podemos sumar 61 a nuestro número aleatorio porque 97-36 = 61.

Finalmente, ¡solo necesitamos convertir nuestro nuevo valor entero en un carácter y devolverlo!

Paso 4: Cree una contraseña aleatoria recorriendo el número total de contraseñas y recorriendo la longitud de las contraseñas.

  • Hagamos un ciclo for externo que se repetirá tantas veces como el número total de contraseñas. Puede utilizar la siguiente notación para hacerlo:
for(int i = 0; i < total; i++)

Dentro de nuestro bucle for externo, podemos crear una variable String para almacenar nuestra contraseña aleatoria y establecerla en una String vacía. A continuación, hagamos un bucle for interno que se repetirá tantas veces como la longitud de la contraseña.Puede usar la siguiente notación para hacerlo:

for(int j = 0; j < length; j++)

Dentro de nuestro bucle for interno, podemos llamar a nuestra función de carácter aleatorio que acabamos de crear y agregar el carácter aleatorio a nuestra Cadena de contraseña aleatoria. ¡Puede decir stringVariable += charVariableque agregue un carácter a una cadena!

Paso 5: almacene cada contraseña aleatoria que genere en una matriz.

  • Antes de nuestro ciclo for externo, creemos una matriz para almacenar cada contraseña aleatoria que generemos. Esta matriz almacenará cadenas en ella y su longitud será igual al número total de contraseñas aleatorias que el usuario desea generar. Una vez que terminemos de generar cada contraseña aleatoria, agreguemosla a nuestra matriz.

Sugerencia: Una vez que terminamos el ciclo for interno, sabemos que hemos generado una contraseña aleatoria, así que justo después de nuestro ciclo for interno (pero aún dentro de nuestro ciclo for externo), podemos decir array[i] = randomPassword.

Paso 6: cree una función para imprimir su matriz de contraseñas.

  • Nuestra función debería tomar una matriz String y devolver void porque todo lo que estamos haciendo en nuestra función es imprimir cada elemento de la matriz. ¡Puede usar un bucle for para recorrer cada elemento de la matriz e imprimirlo!

Ponte a prueba con funciones adicionales

Características adicionales

  • ¡Cree una función que devuelva la fuerza de la contraseña según la longitud de la contraseña!
  • Esta función debe tener la longitud de las contraseñas y debe devolver una cadena: «débil», «medio» o «fuerte».
  • Utilice condicionales para decidir si devolver «débil», «medio» o «fuerte». Por ejemplo, si la longitud es menor que 5, devuelve «débil».
  • Finalmente, imprima la seguridad de la contraseña al final de su método principal.

Sugerencias creativas Como sugerencia creativa, puede hacer que nuestra función de seguridad de contraseña sea más elaborada verificando si, por ejemplo, la contraseña tiene al menos esta cantidad de números.

¡Otra sugerencia para ti es que también puedes incluir símbolos en tu contraseña aleatoria!

Consulte la demostración adicional del proyecto ampliado a continuación o consulte el código de la solución del proyecto si se queda atascado.https://repl.it/@JuniBlog/Random-Password-Generator-Extension?lite=true

¡Gran trabajo! Vea más tutoriales de codificación

¡Gracias por vernos y espero que te hayas divertido haciendo este proyecto conmigo! Cada semana, publicaremos tutoriales de proyectos como este, para diferentes lenguajes de codificación y niveles de experiencia, así como tutoriales de matemáticas.

Consulte nuestros proyectos de codificación paso a paso para encontrar nuestros otros tutoriales en Java y más lenguajes de codificación.

¿Necesitas más ayuda o quieres seguir aprendiendo?

Un instructor de clases de codificación que enseña Python a los niños.

Un instructor de Juni enseña Python básico a un joven estudiante.

¡Buscar tus preguntas de codificación es una de las mejores formas de aprender! Otra excelente manera de aprender es con un codificador o instructor experimentado.

Los instructores de codificación de Juni Learning como Irith trabajan en estrecha colaboración con estudiantes de 8 a 18 años, y están especialmente capacitados para adaptarse al estilo, ritmo e intereses de aprendizaje únicos de cada niño.

Lea más sobre nuestras clases de codificación en línea para niños y el plan de estudios, o comuníquese con nuestro Equipo de Admisiones para saber qué curso es mejor para el viaje de codificación de su estudiante.

Desarrollador gráfico y web, con ganas de trabajar y aprender todo lo posible de este campo tan variado. Trato de ser creativo en la vida laboral como personal. Amante de la buena lectura, el cine con sentido e inteligente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *