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 26

Existen 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 20

Suma 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 21

Consulta 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 8

Ejemplos

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í!