# -*- coding: utf-8 -*- import string class Trithemius(object): ''' Classe de cifra Trithemius ''' def __init__(self): self.plain = string.ascii_uppercase self.cipher = string.ascii_uppercase def shift(self): ''' Desloca o alfabeto cifrado em uma casa. ''' self.cipher = self.cipher[1:] + self.cipher[:1] def encrypt(self, text, decrypt=False): ''' Cifra text com a cifra de Trithemius. Se decrypt é True, decifra ao invés de cifrar o text. ''' text = text.replace(' ', '') ret_text = '' for char in text.upper(): if decrypt: idx = self.cipher.find(char) ret_text += self.plain[idx] else: idx = self.plain.find(char) ret_text += self.cipher[idx] self.shift() self.cipher = string.ascii_uppercase return ret_text def decrypt(self, text): ''' Decifra text com a cifra de Trithemius. ''' return self.encrypt(text, True)