elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  EJERCICIO VALIDACIÓN DE TOKENS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: EJERCICIO VALIDACIÓN DE TOKENS  (Leído 337 veces)
Novarella

Desconectado Desconectado

Mensajes: 1


Ver Perfil
EJERCICIO VALIDACIÓN DE TOKENS
« 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 .


« Última modificación: 6 Noviembre 2018, 04:12 am por Novarella » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] Sobre Tokens en un For « 1 2 »
Scripting
najmuddin 10 8,943 Último mensaje 25 Junio 2008, 23:37 pm
por najmuddin
Tokens?
PHP
Shell Root 5 4,607 Último mensaje 27 Abril 2011, 22:29 pm
por ~ Yoya ~
problema con menu y tokens
Programación C/C++
thapitufa 2 1,372 Último mensaje 2 Diciembre 2012, 23:41 pm
por thapitufa
Problema con C y Tokens
Programación C/C++
spicecobra 1 1,200 Último mensaje 25 Agosto 2013, 18:11 pm
por eferion
tokens
Programación C/C++
mennymonroy 1 686 Último mensaje 17 Mayo 2018, 07:34 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines