Cifrado digital
En el Cifrado digital, la codificación se realiza mediante la simple suma de los números de la clave y los valores correspondientes a los caracteres de una cadena de entrada.
Crea un método Program.digitalCipher que reciba una cadena message en minúsculas, seguida de un entero positivo key, y devuelva el arreglo codificado de enteros.
Asigna un número único a cada letra del alfabeto.
a b c d e f g h i j k l m
1 2 3 4 5 6 7 8 9 10 11 12 13
n o p q r s t u v w x y z
14 15 16 17 18 19 20 21 22 23 24 25 26Existen algunas variantes de las reglas de cifrado. A continuación se describe una de ellas:
String message = "scout";
int key = 1939;
Program.digitalCipher(message, key); // ➞ new int[]{20, 12, 18, 30, 21}Escribe el número correspondiente junto a cada carácter:
s c o u t
19 3 15 21 20Suma a cada número obtenido los dígitos consecutivos de la clave:
s c o u t
19 3 15 21 20
+ 1 9 3 9 1
---------------
20 12 18 30 21Consulta el siguiente ejemplo para entenderlo mejor:
message = "masterpiece"
key = 1939
Program.digitalCipher(message, key) ➞ [14, 10, 22, 29, 6, 27, 19, 18, 6, 12, 8]
m a s t e r p i e c e
13 1 19 20 5 18 16 9 5 3 5
+ 1 9 3 9 1 9 3 9 1 9 3
--------------------------------
14 10 22 29 6 27 19 18 6 12 8Ejemplos
Program.digitalCipher("scout", 1939); // ➞ new int[]{20, 12, 18, 30, 21}
Program.digitalCipher("mubashir", 1990); // ➞ new int[]{14, 30, 11, 1, 20, 17, 18, 18}
Program.digitalCipher("edabit", 100); // ➞ new int[]{6, 4, 1, 3, 9, 20}Notas
¿Te gustó este desafío? ¡Intenta descifrar tu mensaje cifrado aquí!