
Ofuscación de contraseñas
Publicado por Javier (18 intervenciones) el 06/12/2022 09:21:29
Buenos dias a todos.
Tengo una actividad nueva en la que trabajamos con arrays. Me piden "ofuscar" unas contraseñas, es decir , en un array en el que se han guardado contraseñas, cambiar ciertos caracteres por otros.
Encuentro como cambiar caracteres en un string pero no como hacerlo en un array.
Basicamente es esto lo que piden:
Por ejemplo, imagina la contraseña "CASANDRA". Esta expresión podría aparecer fácilmente en una lista de palabras o diccionario de tamaño medio. Si sustituimos la "C" por "((", la "A" por "4", la "S" por "$$" y la "D" por "))", obtendríamos "((4$$4N))R4", que no se parece en nada a la "CASANDRA" original (ni siquiera en el número de caracteres).
CASANDRA -> ((4$$4N))R4
La tabla de ofuscación que vamos a utilizar será la siguiente:
Tabla de ofuscación
Carácter Sustituido por Carácter Sustituido por Carácter Sustituido por
A 4 G 6 P 9
a @ H # S $$
B 8 I | s 2
C (( i 1 T 7
D )) l ! t +
E 3 O 0 V \/
e ? o * Y &
Alguien se le ocurre algo?
Se nos sugiere algo así:
Para cada contraseña, habrá que analizar cada uno de sus caracteres. Lo más sencillo es ir recorriendo cada carácter mediante un bucle.
Si alguno de sus caracteres coincide con los de la tabla de ofuscación, habrá que llevar a cabo la sustitución apropiada y seguir analizando hasta llegar al final. Puedes hacerlo, por ejemplo, con una instrucción switch, con un case para cada carácter "ofuscable".
Muchas gracias
Tengo una actividad nueva en la que trabajamos con arrays. Me piden "ofuscar" unas contraseñas, es decir , en un array en el que se han guardado contraseñas, cambiar ciertos caracteres por otros.
Encuentro como cambiar caracteres en un string pero no como hacerlo en un array.
Basicamente es esto lo que piden:
Por ejemplo, imagina la contraseña "CASANDRA". Esta expresión podría aparecer fácilmente en una lista de palabras o diccionario de tamaño medio. Si sustituimos la "C" por "((", la "A" por "4", la "S" por "$$" y la "D" por "))", obtendríamos "((4$$4N))R4", que no se parece en nada a la "CASANDRA" original (ni siquiera en el número de caracteres).
CASANDRA -> ((4$$4N))R4
La tabla de ofuscación que vamos a utilizar será la siguiente:
Tabla de ofuscación
Carácter Sustituido por Carácter Sustituido por Carácter Sustituido por
A 4 G 6 P 9
a @ H # S $$
B 8 I | s 2
C (( i 1 T 7
D )) l ! t +
E 3 O 0 V \/
e ? o * Y &
Alguien se le ocurre algo?
Se nos sugiere algo así:
Para cada contraseña, habrá que analizar cada uno de sus caracteres. Lo más sencillo es ir recorriendo cada carácter mediante un bucle.
Si alguno de sus caracteres coincide con los de la tabla de ofuscación, habrá que llevar a cabo la sustitución apropiada y seguir analizando hasta llegar al final. Puedes hacerlo, por ejemplo, con una instrucción switch, con un case para cada carácter "ofuscable".
Muchas gracias
Valora esta pregunta


0