Cifrado Ragbaby

En el cifrado Ragbaby, la codificación se realiza mediante una cadena de claves y su posición en la palabra del texto plano de un mensaje.

Crea una función que reciba dos argumentos, key y message, y devuelva el mensaje codificado.

Existen algunas variaciones en las reglas de cifrado. A continuación se describe una versión de las reglas del cifrado:

message = "This is an example."
key = "cipher"

ragbabyCipher(message, key) ➞ "Urew pu bq rzfsbtj."

Paso 1: Elimina las letras duplicadas de la clave. Reordena las letras de la A a la Z, de modo que la palabra clave aparezca primero, seguida del resto de las letras en el orden habitual.

c i p h e r a b d f g j k l m n o q s t u v w x y z

Paso 2: palabra por palabra, asigna números a las letras del mensaje dado:

T h i s   i s   a n   e x a m p l e .
1 2 3 4   1 2   1 2   1 2 3 4 5 6 7

Paso 3: Reemplaza cada letra de la palabra por la letra del alfabeto con clave que se encuentra el número correspondiente de posiciones a su derecha (volviendo al principio cuando sea necesario). Conserva todos los caracteres que no sean letras en el mismo orden y sin cambios.

eMessage = "Urew pu bq rzfsbtj."
// 'u' is 1 place right to 't'
// 'r' is 2 places right to 'h'
// 'e' is 3 places right to 'i' and so on.
// keep the '.' in the same position.

Consulta los siguientes ejemplos para comprenderlo mejor:

Ejemplos

ragbabyCipher("This is an example.", "cipher") ➞ "Urew pu bq rzfsbtj."

ragbabyCipher("mubashir", "edabit") ➞ "nwccyoke"

ragbabyCipher("mattttt", "eedddabit") ➞ "nighjkl"

Notas

  • Las claves solo tendrán letras minúsculas, pero los mensajes codificados deben conservar el orden de las mayúsculas y minúsculas del mensaje original.
  • La asignación de números a las letras se reinicia con cada carácter que no sea una letra.