Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Vigenere Cipher by Amachua
alphabet = __import__("string").ascii_uppercase
def decode_vigenere(*args):
od, oe, ne = map(lambda s:[alphabet.index(l) for l in s], args)
# No need to search the key.
if len(ne) <= len(oe):
return "".join(alphabet[(ne[i]+(od[i]-oe[i]))%26]for i in range(len(ne)))
# Looking for the key.
key, s = [(od[i]-oe[i])%26 for i in range(len(oe))], 2
while key[:s]!=key[s:s*2]:s+=1
return "".join(alphabet[(ne[i]+key[i%s])%26]for i in range(len(ne)))
April 7, 2015
Comments: