Skip to content

Instantly share code, notes, and snippets.

@nenodias
Last active November 7, 2015 10:57
Show Gist options
  • Save nenodias/0f39ccabea551878f269 to your computer and use it in GitHub Desktop.
Save nenodias/0f39ccabea551878f269 to your computer and use it in GitHub Desktop.
Script Criptografia e descriptografar vigenere
#vigenere
abc = "abcdefghijklmnopqrstuvwxyz"
def metodo(indice, offset=0, texto=abc):
return texto[ ( indice + offset ) % len(texto) ]
lista = []
for i in xrange( len(abc) ):
sublista = []
for j in xrange(len(abc)):
sublista.append( metodo(j, i) )
lista.append( sublista )
chave = str(raw_input("Digite a chave:"))
mensagem = str(raw_input("Digite a mensagem:"))
texto_cifrado = ""
mensagem_secreta = ""
for cont,letra in enumerate(mensagem):
if letra in abc:
texto_cifrado += metodo(cont,offset=0,texto=chave)
indice = abc.index(letra)
indice_cifrado = abc.index(texto_cifrado[cont])
mensagem_secreta += lista[indice][indice_cifrado]
else:
mensagem_secreta += letra
texto_cifrado += letra
print(mensagem_secreta)
resultado = ""
for cont, letra in enumerate(mensagem_secreta):
if letra in abc:
letra_cifrada = texto_cifrado[cont % len(texto_cifrado)]
indice_primario = lista[abc.index(letra_cifrada)].index(letra)
resultado += lista[0][indice_primario]
else:
resultado += letra
print(resultado)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment