No Condi Cipher, a codificação é feita deslocando uma sequência de mensagens de acordo com uma determinada chave no texto claro.
Crie uma função que receba três argumentos, key, shift e message, e retorne a mensagem codificada.
Há algumas variações nas regras de cifragem. Uma versão das regras da cifra é apresentada abaixo:
message = "on.,"
shift = 10
key = "cryptogram"
condi_cipher(message, key, shift) ➞ "jx.,"Etapa 1: Remova as letras duplicadas da chave. Reorganize as letras de A-Z, de modo que a palavra-chave apareça primeiro, seguida pelo restante das letras na ordem usual.
c r y p t o g a m b d e f h i j k l n q s u v w x zEtapa 2: Começando em 1, atribua números às letras:
1 2 3 4 5 6 7 8 9 10 11 12 13
c r y p t o g a m b d e f
14 15 16 17 18 19 20 21 22 23 24 25 26
h i j k l n q s u v w x zEtapa 3: Substitua cada letra da mensagem pela letra correspondente na chave modificada, deslocada por um número positivo constante shift (se o deslocamento ultrapassar o tamanho da chave, ele continua a partir do início):
'o' = 'j'
# 'j' is 10 places right to 'o'Etapa 4: Use a posição da letra anterior como o número de posições a avançar para codificar o próximo número do texto claro. Se você acabou de codificar um 'o' (posição 6) e agora quer codificar 'n', deve avançar 6 posições para a direita a partir de 'n', chegando a 'x'.
'n' = 'x'
# 'x' is 6 places right to 'n'
# keep other characters in same order
eMessage = "jx.,"Veja os exemplos abaixo para entender melhor:
condi_cipher("on.,", "cryptogam", 10) ➞ "jx.,"
condi_cipher("mubashir", "airforce", 6) ➞ "ugrdtfko"
condi_cipher("matt", "edabit", 2) ➞ "opgk"N/A