El reto "Encriptador" de Alura en el marco de Oracle ONE es una tarea enfocada en la Criptografía.
Caution
🛑 No utilizar esta aplicación para Cifrar Información Sensible!!
Este Proyecto es realizado con fines académicos para desarrollar habilidades prácticas en estudiantes que se encuentran revisando temas programación y criptografía clásica (cifrado por sustitución).
En este reto, el objetivo es implementar un sistema de encriptación y desencriptación de mensajes. La idea es crear un programa que pueda tomar un mensaje de texto, cifrarlo utilizando un algoritmo específico, y luego descifrarlo para recuperar el mensaje original.
-
Cifrado y Descifrado:
- Se debe implementar un método de cifrado que transforme el texto claro en texto cifrado. Este proceso debe ser reversible, permitiendo descifrar el texto cifrado de vuelta al texto original.
-
Algoritmo de Encriptación:
- El reto especifica el uso de un algoritmo de cifrado en particular. Para generar esto el encriptador sigue una serie de reglas por las cuales sustituye vocales por una clave específica (conjunto de letras), de esta manera se consigue encriptar o desencriptar el texto ingresado, también se podrá “copiar” el texto del área de resultados para reutilizarlo. Esto es detallado más adelante en la sección
Reglas de Funcionamiento
.
- El reto especifica el uso de un algoritmo de cifrado en particular. Para generar esto el encriptador sigue una serie de reglas por las cuales sustituye vocales por una clave específica (conjunto de letras), de esta manera se consigue encriptar o desencriptar el texto ingresado, también se podrá “copiar” el texto del área de resultados para reutilizarlo. Esto es detallado más adelante en la sección
-
Interfaz de Usuario:
- El programa debe tener una interfaz que permita al usuario ingresar el texto que desea cifrar y proporcionar la opción para descifrar el texto cifrado.
-
Validación:
- Se debe agregar validaciones para asegurarse de que el cifrado y descifrado funcionen correctamente, manejando adecuadamente los casos en los que el usuario ingresa texto inválido o datos incorrectos.
-
Documentación:
- Se debe documentar el código para explicar cómo funciona la implementación y cómo el usuario puede interactuar con el sistema de encriptación.
-
Comprensión de Criptografía:
- Aprender sobre los conceptos básicos de criptografía y cómo los algoritmos de cifrado y descifrado funcionan.
-
Implementación de Algoritmos:
- Desarrollar habilidades en la implementación de algoritmos de encriptación y desencriptación.
-
Desarrollo de Interfaces:
- Mejorar en el diseño de interfaces de usuario para programas que manejan datos.
El reto ofrece la oportunidad de practicar la programación (en JavaScript), comprender la teoría detrás de la criptografía, y construir un programa funcional que maneje datos y los procese adecuadamente.
Finalmente, contiene un pie de página con enlaces de contacto del Autor.
-
✅ Solo se pueden utilizar letras minúsculas.
-
✅ No se permiten acentos ortográficos (tildes), ni símbolos especiales.
-
✅ Debe ser posible convertir una palabra a la versión encriptada y también devolver una palabra encriptada a su versión original. (Ejemplos: "gato" ⇛ "gaitober" | "gaitober" ⇛ "gato")
-
✅ La página debe tener campos para que el usuario pueda ingresar el texto que será encriptado o desencriptado, y el usuario debe poder escoger entre las 2 opciones.
-
✅ El resultado debe ser mostrado en la pantalla justo después de presionar uno de los botones (cifrar o descifrar).
-
✅ Un botón que copie el texto encriptado / desencriptado al portapaleles del sistema operativo, es decir, que se tenga el mismo comportamiento que al presionar la combinación de teclas Ctrl + C o usando la opción “Copiar” del menú al hacer clic derecho.
Valor | Clave |
---|---|
a | ai |
e | enter |
i | imes |
o | ober |
u | ufat |
📌 Recordar que los valores funcionan en ambas direcciones a la hora de encriptar y desencriptar.
Hecho con ❤️ por Galoget Latorre