(key, message, mode)
| 31 | return translateMessage(key, message, 'decrypt') |
| 32 | |
| 33 | def translateMessage(key, message, mode): |
| 34 | translated = [] |
| 35 | keyIndex = 0 |
| 36 | key = key.upper() |
| 37 | |
| 38 | for symbol in message: |
| 39 | num = LETTERS.find(symbol.upper()) |
| 40 | if num != -1: |
| 41 | if mode == 'encrypt': |
| 42 | num += LETTERS.find(key[keyIndex]) |
| 43 | elif mode == 'decrypt': |
| 44 | num -= LETTERS.find(key[keyIndex]) |
| 45 | |
| 46 | num %= len(LETTERS) |
| 47 | |
| 48 | if symbol.isupper(): |
| 49 | translated.append(LETTERS[num]) |
| 50 | elif symbol.islower(): |
| 51 | translated.append(LETTERS[num].lower()) |
| 52 | |
| 53 | keyIndex += 1 |
| 54 | if keyIndex == len(key): |
| 55 | keyIndex = 0 |
| 56 | else: |
| 57 | translated.append(symbol) |
| 58 | return ''.join(translated) |
| 59 | |
| 60 | if __name__ == '__main__': |
| 61 | main() |
no test coverage detected