Título: EJERCICIO VALIDACIÓN DE TOKENS Publicado por: Novarella en 5 Noviembre 2018, 00:09 am ¡Buenas amigos de ElHacker.net!
Recién estoy empezando a estudiar una Licenciatura en Computación y tengo un problema con una tarea enviada por mi profesora, de verdad que solicito ayuda, por más que intento no logro comprender la asignación; cabe destacar que lo único que comprendo es que hay que usar la libreria Iostream en c++ para entrada y salida de datos; junto a una declaración de variables tipo string. La transmisión de datos es un punto de gran importancia, ya que permite la interacción entre los sistemas y la posibilidad de intercambiar información, por ello una de las tendencias en el desarrollo web se refiere a la autenticación por medio de tokens aleatorios. El funcionamiento es el siguiente, el usuario se autentica en la aplicación por medio de un par usuario/contraseña, si la combinación es correcta el servidor le asigna un token. A partir de este paso cada petición que se haga debe estar acompañada del token generado, para validar que el usuario que realiza la petición tiene permiso de acceso a los datos solicitados. Para este propósito se requiere que los estudiantes de Algoritmos y Programación diseñen e implementen un programa en lenguaje C++ que, permita generar tokens de autenticación a partir de unas condiciones y verificar su validez. Al comienzo se debe indicar al programa con un número la acción a realizar a partir de un número entero 1 (caso verificar) o 2 (caso generar). La siguiente línea identificara dos distancias i y j , donde 2 ≤ i ≤ 5 y 1 ≤ j ≤ 6 . CASO VERIFICAR 1. La siguiente línea será una cadena de caracteres de tamaño 7 . 2. La cadena a verificar está compuesta por cuatro letras y tres números (no se toma en cuenta la letra “ñ”). En el caso que la cadena posea un carácter distinto a los especificados se debe imprimir “NO VALIDA” y finalizar el programa. 3. La cadena se divide condicionalmente en tres partes: las tres primeras letras, la letra de centro y los tres últimos números. 4. La cadena deben cumplir las siguientes condiciones para pasar el proceso de verificación exitosamente: a. La primera condición se aplica a las 3 primeras letras de la cadena, en ella se verifica si a partir de la primera letra se mantiene una secuencia de distancia i , si i = 2 un ejemplo válido sería “aCe”. Además se debe tomar en cuenta que el abecedario será circular, es decir, por lo tanto si la primera letra es una “Z” una cadena válida para la condición sería “ZbD”. b. La segunda condición se aplica a la última parte de la cadena (3 últimos números), en ella se verifica si a partir del primer número se mantiene una secuencia de distancia j , si j = 3 un ejemplo válido sería “036”. Además se debe tomar en cuenta que solo serán usados los números del 0-9, por ende se trataran de manera circular, es decir, si el primer número es un “9” la cadena válida para la condición sería “925”. c. La tercera y última condición se aplica sobre la letra del centro de la cadena, ya que está representada por ultimo número de la misma, es decir si el último número es “0”, la letra central debe ser una “a” o “A”. a-A/b-B/c-C/d-D/e-E/f-F/g-G/h-H/i-I/j-J 0 1 2 3 4 5 6 7 8 9 5. Si se cumplen todas las condiciones explicadas anteriormente se debe imprimir “VALIDA” y finalizar el programa. En caso contrario se debe imprimir “NO VALIDA” y finalizar el programa. Ejemplo con i = 2 y j = 3 : ZbDb581 - Cadena a verificar ZbD - Se verifica si se cumple la condición de distancia i entre letras 581 - Se verifica si se cumple la condición de distancia j entre números b Se verifica si la letra del centro corresponde con la del último número de la cadena CASO GENERAR 1. La siguiente línea será una cadena de caracteres de tamaño 2 . 2. La cadena está compuesta por 1 letra y 1 número (no se toma en cuenta la letra “ñ”). En caso que la cadena posea un carácter distinto a los especificados se debe imprimir “NO VALIDA” y finalizar el programa. 3. La cadena se divide en dos partes la letra inicial y el número final. Para poder generar una cadena válida se deben cumplir los siguientes pasos: a. A partir de la letra ingresada se crea la primera parte de la cadena aplicando una secuencia de distancia i entre letras. b. A partir del número ingresado se crea la última parte de la cadena aplicando una secuencia de distancia j entre números. c. A partir del último número generado en el paso anterior se busca la letra correspondiente y se coloca en el centro de la cadena final. 4. Si se genera exitosamente una de las posibilidades válidas, a partir de las condiciones explicadas anteriormente se debe imprimir la cadena creada y finalizar el programa. Ejemplo con i = 3 y j = 4 : W3 - Cadena ingresada. WZC - Se crea la primera parte de la cadena final a partir de una secuencia de distancia i entre letras. 371 - Se crea la última parte de la cadena final a partir de una secuencia de distancia j entre números. B - Con el último número generado se busca la letra correspondiente a colocar en el centro de la cadena final. WZCB371 Cadena final. EJEMPLOS ENTRADA SALIDA 1 2 3 dfHE814 VALIDA 1 3 4 CFga714 NO VALIDA 1 5 5 Avqa050 NO VALIDA 1 5 5 #eta453 NO VALIDA 2 2 3 t5 tvxb581 2 1 6 hj NO VALIDA 2 4 5 4$ NO VALIDA CONDICIONES GENERALES : ● El proyecto debe ser desarrollado en el lenguaje de programación C++, y será corregido con el compilador GNU g++. ● No se pueden usar estructuras de datos como Arreglos, Matrices, Registros u Orientado a Objetos. ● Todos los datos se deben leer desde teclado, no se acepta lectura desde archivos. ● No se deben agregar menús, formatos y textos que no cumplan con el establecido. ● Solo puede hacer uso de estructuras condicionales y librerías del lenguaje estándar para la lectura desde el teclado y escritura en pantalla. No se aceptará el uso de otras librerías . ● Se deben realizar las validaciones respectivas en los datos de entrada, con el fin de asegurar el robusto funcionamiento del programa. ● Las letras podrán ser tanto minúsculas como mayúsculas . |