X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=cipher.py;h=a511e2492667dfa4abad4ada7f15d67a4aa30d75;hb=07c3f8b652e218c94ad2a0dd1fb4657be4c6fe17;hp=bde9ea1edae60438c4ea131690c9221c689f1eab;hpb=e514a90b030632244bb10636ed0fe54cffb56f19;p=cipher-training.git diff --git a/cipher.py b/cipher.py index bde9ea1..a511e24 100644 --- a/cipher.py +++ b/cipher.py @@ -5,7 +5,6 @@ them. See cipherbreak for automatic breaking of these ciphers import string import collections from enum import Enum -from itertools import zip_longest, cycle, chain from language_models import unaccent, sanitise @@ -262,31 +261,6 @@ def keyword_decipher(message, keyword, cipher_translation = ''.maketrans(cipher_alphabet, string.ascii_lowercase) return message.lower().translate(cipher_translation) - -def vigenere_encipher(message, keyword): - """Vigenere encipher - - >>> vigenere_encipher('hello', 'abc') - 'hfnlp' - """ - shifts = [ord(l) - ord('a') for l in sanitise(keyword)] - pairs = zip(message, cycle(shifts)) - return ''.join([caesar_encipher_letter(l, k) for l, k in pairs]) - -def vigenere_decipher(message, keyword): - """Vigenere decipher - - >>> vigenere_decipher('hfnlp', 'abc') - 'hello' - """ - shifts = [ord(l) - ord('a') for l in sanitise(keyword)] - pairs = zip(message, cycle(shifts)) - return ''.join([caesar_decipher_letter(l, k) for l, k in pairs]) - -beaufort_encipher = vigenere_decipher -beaufort_decipher = vigenere_encipher - - if __name__ == "__main__": import doctest doctest.testmod()