Cifra Ragbaby

Na cifra Ragbaby, a codificação é feita por uma sequência de chaves e sua posição na palavra em texto claro de uma mensagem.

Crie uma função que receba dois argumentos, key e message, e retorne a mensagem codificada.

Há algumas variações nas regras de cifragem. Uma versão das regras da cifra está descrita abaixo:

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

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

Etapa 1: Remova as letras duplicadas da chave. Reorganize as letras de A a Z, de modo que a palavra-chave apareça primeiro, seguida pelo restante das letras na ordem 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

Etapa 2: palavra por palavra, atribua números às letras da mensagem fornecida:

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

Etapa 3: Substitua cada letra da palavra pela letra do alfabeto com chave que esteja o número correspondente de posições à direita dela (voltando ao início quando necessário). Mantenha todos os caracteres que não sejam letras na mesma ordem e sem nenhuma alteração.

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.

Veja os exemplos abaixo para entender melhor:

Exemplos

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

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

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

Observações

  • As chaves terão apenas letras minúsculas, mas as mensagens codificadas devem manter a ordem das letras maiúsculas e minúsculas da mensagem original.
  • A atribuição de números às letras é reiniciada a cada caractere que não seja uma letra.