def test_cipher_creation(self):
        translate_from = string.ascii_lowercase
        translate_to = string.ascii_lowercase[1:] + string.ascii_lowercase[0]

        cipher_target = {
            l_from: l_to
            for l_from, l_to in zip(translate_from, translate_to)
        }
        cipher_generated = translator.create_cipher(string.ascii_lowercase,
                                                    translate_to)

        self.assertDictEqual(cipher_target, cipher_generated)
    def test_encipher(self):
        test_msg = "Klein testje, kijken of dit werkt."

        test_cipher = translator.create_cipher(
            string.ascii_lowercase,
            string.ascii_lowercase[1:] + string.ascii_lowercase[0])

        encrypted_msg_truth = translator.decipher_text(
            test_msg, {v: k
                       for k, v in test_cipher.items()})
        encrypted_msg = translator.encipher_text(text=test_msg,
                                                 cipher=test_cipher)

        self.assertEqual(encrypted_msg_truth, encrypted_msg)
    def generate_possible_words(self, word_enc, cipher={}):
        """
        A generator for the possibilities of an encoded word.
        This function will also determine the accompanying cipher and return it.
        
        :param word_enc: Encoded word
        :param cipher: Cipher used so far
        :return: generator for possible decodings along with the cipher for that
        """
        processed_word = process_word(word_enc, self._character_set)
        possible_words = self.get_possible_words(processed_word, cipher)

        for word_dec in possible_words:
            cipher_for_this = create_cipher(processed_word, word_dec)
            yield word_dec, {**cipher_for_this, **cipher}
def create_random_cipher(character_set=string.ascii_lowercase):
    random_shuffle_characters = random.sample(character_set,
                                              len(character_set))
    return create_cipher(character_set, random_shuffle_characters)
Beispiel #5
0
def create_random_cipher(character_set):
    random_shuffle_characters = random.sample(character_set, len(character_set))
    return create_cipher(character_set, random_shuffle_characters)