09 May Programa que genera una contraseña aleatoria y segura con javascript
Generar una contraseña segura de n caracteres aleatorios puede parecer un reto si nos dejamos deslumbrar por el titular.
Sin embargo si somos capaces de romper el problema en otros más sencillos veremos que en realidad no lo es tanto.
Existen varios conceptos o ideas que te pueden ayudar para sacar provecho de este ejercicio.
- Como generar un dado de 6 caras.
- Concepto de iteración. Ya sea con un while o un for.
¿Preparado?
Enunciado
Escribe un programa que pida por pantalla un número entero al usuario.
Escribe a continuación un script que devuelva por pantalla un número de tantos caracteres como el número entero indicado por la persona.
La contraseña puede estar formada por minúsculas de la a a la z, números y los caracteres _, -, ., $, &, #, @.
Si lo deseas completa la contraseña con mayúsculas y/o otras posibilidades.
Solución del ejercicio
Para resolver este problema lo primero que debemos hacer es trazar un plan.
- Paso 1: pedir un número al usuario y transformarlo a entero.
- Paso 2: crear un texto con n caracteres dónde n es el número indicado por el usuario.
- Paso 3: conseguir ahora que cada letra pase a ser aleatorio.
- Paso 4: hemos conseguido escribir una palabra de n caracteres dónde cada una es aleatoria.
¿Como queda el documento js?
<!DOCTYPE html>
<html>
<head>
<title>Programa generador de contraseñas seguras</title>
<meta charset="utf-8"/>
</head>
<body>
<script>
// paso 1 - pedir un número al usuario
var abecedario = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9",".","-","_","$","&","#","@"];
var numero = parseInt(window.prompt("escribe un numero"));
var numeroAleatorio = 3;
// paso 2 - escribir x caracteres
for(var i = 0; i<numero; i++){
numeroAleatorio = parseInt(Math.random()*abecedario.length);
document.write(abecedario[numeroAleatorio]);
}
// paso 3 - conseguir que cada caracter sea aleatorio.
// paso 4 - tenemos x caracteres aleatorios
</script>
</body>
</html>
Puntualizaciones:
Conseguir una palabra de n caracteres es fácil. Podemos hacerlo con un for o un while.
Para hacer que tengamos un número aleatorio usamos la expresión:
numeroAleatorio = parseInt(Math.random()*abecedario.length)
Fijaros que devolverá un número entre 0 y la longitud del array abecedario. Lo hacemos así porqué de este modo no importa la longitud del array. Podemos ir añadiendo tantos caracteres como necesitemos.
En la variable abecedario
var abecedario = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9",".","-","_","$","&","#","@"];
daros cuenta que no he incluido mayúsculas.
De hacerlo la opción más fácil no sería escribirlo una por una sino por ejemplo usar el método .toUpperCase() para generar un nuevo array/lista y después concatenarlos.
¡Hola!
Querido lector,
Si te ha gustado este ejercicio te animo a mejorarlo prescindiendo por ejemplo de window.prompt() o document.write() y usar por ejemplo el DOM según explicado en otras secciones de este tutorial.
También podrías por ejemplo buscar el modo de que fuera el usuario quien elija que caracteres quiere añadir: mayúsculas, minúsculas, símbolos especiales o otros. La idea sería generar una lista para cada tipo y concatenar aquellas elegidas por el usuario.
¡Si te ha gustado este contenido te animo a seguirme en mi perfil de empresa de Linkedin!
Entradas relacionadas:
En ocasiones es en las cosas más básicas dónde nos bloqueamos. ¿Qué nombre poner a las variables cuando programamos con javascript?
Práctica javascript para practicar con las informaciones de un array. Llamamos, substituimos y añadimos elementos. Incluye solución.
Ejercicio dónde se generan los encabezados h1 a h6 mediante javascript. Incluye solución.
¿Estás cansado de buscar como solucionar el error concreto de tu script? La consola del navegador es tu ayuda. ¡Deja de buscar!
Ejercicio en que se plantea escribir un diccionario que devuelve la traducción de una palabra en otro idioma. Incluye solución con if y for.
Ejercicio pensada para personas que empiezan a aprender javascript. Dibuja una escalera con javascript y css. Incluye solución.
No Comments