Vigenere final

This commit is contained in:
Julia Hauer 2026-03-14 15:38:05 +01:00
parent 97ed8c35f2
commit 9805048088

View File

@ -17,11 +17,16 @@ class VigenereCipher(object):
new_text = [] new_text = []
for l_text, l_key in zip(text, new_key): for l_text, l_key in zip(text, new_key):
if l_text in self.alphabet:
if l_key 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: else:
new_pos = self.alphabet.index(l_text) new_pos = self.alphabet.index(l_text)
new_text.append(self.alphabet[new_pos]) new_text.append(self.alphabet[new_pos])
else:
new_text.append(l_text)
return "".join(new_text) return "".join(new_text)
def decode(self, text): def decode(self, text):
@ -37,18 +42,15 @@ class VigenereCipher(object):
new_text = [] new_text = []
for l_text in text: for l_text, l_key in zip(text, new_key):
for i, l_abc in enumerate(self.alphabet): if l_text in self.alphabet:
if l_text == l_abc: if l_key in self.alphabet:
for l_key in new_key: new_pos = (
for j, l_abc in enumerate(self.alphabet): self.alphabet.index(l_text) - self.alphabet.index(l_key)
if l_key == l_abc: ) % len(self.alphabet)
new_pos = (i - j) % len(self.alphabet)
else: else:
new_pos = i new_pos = self.alphabet.index(l_text)
new_text.append(self.alphabet[new_pos])
else: else:
continue new_text.append(l_text)
for i, l_abc in enumerate(self.alphabet):
if new_pos == i:
new_text.append(l_abc)
return "".join(new_text) return "".join(new_text)