Proyecto generador de contraseñas

Proyecto
Intermedio
TypeScript
TypeScript
120 min
200 XP
Actualizado: 04/05/2025

¡Practica y certifícate!

Retroalimentación
Soluciones
Certificado
Comenzar

Descripción

Desarrollo de una aplicación de generación de contraseñas seguras con TypeScript que permite personalizar la longitud y los tipos de caracteres incluidos.

  1. Configura un nuevo proyecto TypeScript creando los archivos necesarios: index.html, styles.css, app.ts y tsconfig.json. En el archivo de configuración TypeScript, habilita las opciones estrictas y configura la salida a ES2015 o superior.

  2. Diseña la interfaz HTML básica que incluya:

  • Un control para seleccionar la longitud de la contraseña (input type="range" o input type="number")
  • Casillas de verificación para cada tipo de carácter (minúsculas, mayúsculas, números, símbolos)
  • Un botón para generar la contraseña
  • Un área para mostrar la contraseña generada
  • Un botón para copiar la contraseña al portapapeles
  • Un indicador visual para la fortaleza de la contraseña
  1. Crea una clase PasswordGenerator en TypeScript que encapsule la lógica de generación de contraseñas. Esta clase debe tener:
  • Propiedades para la longitud y los tipos de caracteres a incluir
  • Un método para generar contraseñas aleatorias basadas en los parámetros configurados
  • Un método para evaluar la fortaleza de una contraseña
  1. Implementa la lógica para generar contraseñas aleatorias utilizando los conjuntos de caracteres seleccionados. Asegúrate de que la contraseña generada incluya al menos un carácter de cada tipo seleccionado.

  2. Desarrolla la función que evalúa la fortaleza de la contraseña basándose en criterios como longitud y variedad de caracteres. Clasifica las contraseñas como débiles, medias o fuertes.

  3. Implementa la funcionalidad para copiar la contraseña generada al portapapeles utilizando la API del navegador.

  4. Añade validación para asegurar que el usuario seleccione al menos un tipo de carácter antes de generar una contraseña. Muestra mensajes de error apropiados cuando sea necesario.

    Guarda tu progreso

    Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

    Progreso guardado
    Asistente IA
    Ejercicios
    Iniciar sesión gratis

    Más de 25.000 desarrolladores ya confían en CertiDevs

  5. Crea una clase UIController que maneje la interacción entre la interfaz de usuario y la clase PasswordGenerator, siguiendo el patrón MVC.

  6. Implementa el manejo de eventos para los elementos de la interfaz, conectando los controles con las funciones correspondientes de generación de contraseñas.

  7. Añade estilos CSS para mejorar la apariencia de la aplicación y proporcionar feedback visual al usuario (como cambiar el color del indicador de fortaleza según el nivel).

Solución al ejercicio

Contenido bloqueado

¡Desbloquea la solución completa!

Completa el examen para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.

solution.js
JavaScript
1 function solveChallenge ( input ) {
2 // Algoritmo optimizado O(n log n)
3 const data = parseInput ( input );
4 const sorted = data . sort (( a , b ) => a - b );
5
6 // Aplicar técnica de dos punteros
7 let left = 0 , right = sorted . length - 1 ;
8 const result = [];
9
10 while ( left < right ) {
11 const sum = sorted [ left ] + sorted [ right ];
12 if ( sum === target ) {
13 result . push ([ sorted [ left ], sorted [ right ]]);
14 left ++; right --;
15 } else if ( sum < target ) {
16 left ++;
17 } else {
18 right --;
19 }
20 }
21
22 return result ;
23 }
Código completo
Explicaciones
Mejores prácticas
+1.200 developers han resuelto este ejercicio de programación

Practica con exámenes de TypeScript

Mejora tus habilidades con cientos de exámenes de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.

Retroalimentación

Aprende de tus errores

Progreso

Mide tu avance

Certificación

Valida tus habilidades

Únete a miles de desarrolladores mejorando sus habilidades

⭐⭐⭐⭐⭐
4.9/5 valoración