Compare commits
No commits in common. "01bfc9928aa3a4ab0e2a638987ed54e497459963" and "6f1ef532141533ffa9524fcf8101f5a635dcfd61" have entirely different histories.
01bfc9928a
...
6f1ef53214
@ -1,41 +0,0 @@
|
|||||||
def key_string(key, text):
|
|
||||||
keystring = key
|
|
||||||
while len(keystring) <= len(text):
|
|
||||||
keystring += key
|
|
||||||
return keystring[: len(text)]
|
|
||||||
|
|
||||||
|
|
||||||
class VigenereCipher(object):
|
|
||||||
def __init__(self, key, alphabet):
|
|
||||||
self.alphabet = alphabet
|
|
||||||
self.key = key
|
|
||||||
self.keymap = []
|
|
||||||
for i in range(len(alphabet)):
|
|
||||||
self.keymap.append(alphabet)
|
|
||||||
alphabet = alphabet[1:] + alphabet[0]
|
|
||||||
|
|
||||||
def encode(self, text):
|
|
||||||
keystring = key_string(self.key, text)
|
|
||||||
encode_string = ""
|
|
||||||
|
|
||||||
for index, i in enumerate(text):
|
|
||||||
index_alpha = self.alphabet.find(i)
|
|
||||||
if index_alpha == -1:
|
|
||||||
encode_string += i
|
|
||||||
else:
|
|
||||||
index_key = self.alphabet.find(keystring[index])
|
|
||||||
encode_string += self.keymap[index_key][index_alpha]
|
|
||||||
return encode_string
|
|
||||||
|
|
||||||
def decode(self, text):
|
|
||||||
keystring = key_string(self.key, text)
|
|
||||||
decode_string = ""
|
|
||||||
|
|
||||||
for index, i in enumerate(text):
|
|
||||||
if self.alphabet.find(i) == -1:
|
|
||||||
decode_string += i
|
|
||||||
else:
|
|
||||||
index_key = self.alphabet.find(keystring[index])
|
|
||||||
index_alpha = self.keymap[index_key].find(i)
|
|
||||||
decode_string += self.alphabet[index_alpha]
|
|
||||||
return decode_string
|
|
||||||
Loading…
x
Reference in New Issue
Block a user