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:
Ejemplo académico de como hacer con javascript una galería de imágenes de producto para una ficha de producto de una tienda.
El desconocimiento hace que a menudo muchos usuarios decidan desactivar la opción de que nuestra navegador acepte y/o interprete este lenguaje de script. ¿Que podemos hacer para avisar a los usuarios ...
Resumimos como eliminar nodos del DOM mediante javascript y siguiendo una estrategia sencilla mediante .removeChild()
Ejemplo de programación de una ventana emergente con Javascript. Incluye solución. Serie de ejercicios tutorial javascript del curso ifcd0110
Ejercicio javascript resuelto en el que see plantea un script para cargar una imagen aleatoria cada vez que se clica un botón.
Ejercicio nivel principiante dónde se presenta una misma solución mediante un while y un for. Incluye solución.
No Comments