Vigenere final
This commit is contained in:
parent
97ed8c35f2
commit
9805048088
@ -17,11 +17,16 @@ class VigenereCipher(object):
|
||||
new_text = []
|
||||
|
||||
for l_text, l_key in zip(text, new_key):
|
||||
if l_text in self.alphabet:
|
||||
if l_key in self.alphabet:
|
||||
new_pos = self.alphabet.index(l_text) + self.alphabet.index(l_key)
|
||||
new_pos = (
|
||||
self.alphabet.index(l_text) + self.alphabet.index(l_key)
|
||||
) % len(self.alphabet)
|
||||
else:
|
||||
new_pos = self.alphabet.index(l_text)
|
||||
new_text.append(self.alphabet[new_pos])
|
||||
else:
|
||||
new_text.append(l_text)
|
||||
return "".join(new_text)
|
||||
|
||||
def decode(self, text):
|
||||
@ -37,18 +42,15 @@ class VigenereCipher(object):
|
||||
|
||||
new_text = []
|
||||
|
||||
for l_text in text:
|
||||
for i, l_abc in enumerate(self.alphabet):
|
||||
if l_text == l_abc:
|
||||
for l_key in new_key:
|
||||
for j, l_abc in enumerate(self.alphabet):
|
||||
if l_key == l_abc:
|
||||
new_pos = (i - j) % len(self.alphabet)
|
||||
for l_text, l_key in zip(text, new_key):
|
||||
if l_text in self.alphabet:
|
||||
if l_key in self.alphabet:
|
||||
new_pos = (
|
||||
self.alphabet.index(l_text) - self.alphabet.index(l_key)
|
||||
) % len(self.alphabet)
|
||||
else:
|
||||
new_pos = i
|
||||
new_pos = self.alphabet.index(l_text)
|
||||
new_text.append(self.alphabet[new_pos])
|
||||
else:
|
||||
continue
|
||||
for i, l_abc in enumerate(self.alphabet):
|
||||
if new_pos == i:
|
||||
new_text.append(l_abc)
|
||||
new_text.append(l_text)
|
||||
return "".join(new_text)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user