diff options
Diffstat (limited to 'python/code/10_caeser_cipher.py')
-rw-r--r-- | python/code/10_caeser_cipher.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/python/code/10_caeser_cipher.py b/python/code/10_caeser_cipher.py new file mode 100644 index 0000000..64b1a60 --- /dev/null +++ b/python/code/10_caeser_cipher.py @@ -0,0 +1,27 @@ +import sys +message = input('Enter message: ') +key = None +try: + key = int(input('Enter key (1-25, -1 - -25): ')) +except ValueError: + print('Invalid key, must be an integer') + sys.exit(1) + +if key < 0: key += 26 +if not (1 <= key <= 25): + print('Invalid key, must be an integer with absolute value between 1 and 25, inclusive') + sys.exit(2) + +marr = bytearray(message, 'ascii') +for i in range(len(marr)): + c = marr[i] + if 64 < c < 64 + 27: + c = ((c - 65) + key) % 26 + 65 + elif 96 < c < 96 + 27: + c = ((c - 97) + key) % 26 + 97 + marr[i] = c + +print('Caesar cipher with k =', key, 'applied to the given message:') +print(str(marr, encoding='ascii')) + + |