Skip to content

Instantly share code, notes, and snippets.

@xSAVIKx
Created April 21, 2015 20:16
Show Gist options
  • Save xSAVIKx/16bc58889b57c6e54392 to your computer and use it in GitHub Desktop.
Save xSAVIKx/16bc58889b57c6e54392 to your computer and use it in GitHub Desktop.
Easy decryptor for Caesar cipher written in Python (maybe not the best variant, but the clearest one for me)
# coding=utf-8
__author__ = 'Iurii Sergiichuk'
# Text to decrypt
text = u"ТЙШЛЙРН ВЧУ ЭНЩХ ЫЙМЕХД? ЧУЗИЕ ИЙХЛН УЧЖЙЧ: ИЛШФЖ"
# Alphabet that encrypted message consists of (means, that in encrypted message only this letters can be encrypted)
ALPHABET = u'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
alphabet_len = len(ALPHABET)
letter_map = {}
ord_map = {}
i = 0
for letter in ALPHABET:
letter_map[letter] = i
ord_map[i] = letter
i += 1
variants = []
for i in range(alphabet_len):
variant = []
for char in text:
possible_char = char
possible_ord = letter_map.get(char)
if possible_ord is not None:
possible_ord += i
possible_ord %= alphabet_len
possible_char = ord_map.get(possible_ord)
variant.append(possible_char)
variants.append(variant)
for var in variants:
str = ''
for char in var:
str += char
print str
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment