def translation(self, letter): toEncrypt1 = self.circularShifts(letter, self.offset - self.setting) if self.direction == 'REVERSE': toEncrypt2 = self.reversePermutation[Translator.letterToIndex( toEncrypt1)] else: toEncrypt2 = self.permutation[Translator.letterToIndex(toEncrypt1)] encrypted = self.circularShifts(toEncrypt2, (self.setting - 1) - (self.offset - 1)) return encrypted
def setConfiguration(self, pbConfiguration): if 0 < len(pbConfiguration) <= 10: for pair in pbConfiguration: firstLetter = pair[0] firstIndex = Translator.letterToIndex(firstLetter) secondLetter = pair[1] secondIndex = Translator.letterToIndex(secondLetter) self.permutation[firstIndex] = secondLetter self.permutation[secondIndex] = firstLetter elif len(pbConfiguration) > 10: print "Error, Only 10 Paris Of Plugboard is allow. Bay-Bay" sys.exit(0)
def reverseTranslation(self): abc = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ") index = 0 for letter in self.permutation: self.reversePermutation[Translator.letterToIndex( letter)] = abc[index] index += 1
def __init__(self, name, permutation, turnOver): self.name = name self.permutation = permutation self.reversePermutation = [0] * self.SIZE self.reverseTranslation( ) # create reverse translation from forward permutation self.turnOver = Translator.letterToIndex(turnOver) + 1 self.setting = 0 self.offset = 0
def translation(self, letter): return self.permutation[Translator.letterToIndex(letter)]