Affine Cipher представляет собой комбинацию алгоритма Multiplicative Cipher и Caesar Cipher. Основная реализация аффинного шифра, как показано на рисунке ниже —
В этой главе мы реализуем аффинный шифр, создав соответствующий класс, включающий две основные функции для шифрования и дешифрования.
Код
Вы можете использовать следующий код для реализации аффинного шифра:
class Affine(object): DIE = 128 KEY = (7, 3, 55) def __init__(self): pass def encryptChar(self, char): K1, K2, kI = self.KEY return chr((K1 * ord(char) + K2) % self.DIE) def encrypt(self, string): return "".join(map(self.encryptChar, string)) def decryptChar(self, char): K1, K2, KI = self.KEY return chr(KI * (ord(char) - K2) % self.DIE) def decrypt(self, string): return "".join(map(self.decryptChar, string)) affine = Affine() print affine.encrypt('Affine Cipher') print affine.decrypt('*18?FMT')
Выход
При реализации аффинного шифра вы можете наблюдать следующий результат:
Выходные данные отображают зашифрованное сообщение для простого текстового сообщения Affine Cipher и расшифрованное сообщение для сообщения, отправляемого в качестве ввода abcdefg.