El método original fue descrito por Giovan Battista Belasso en su libro de 1553 La cifra del Sig. Giovan Battista Belasso. Sin embargo, fue incorrectamente atribuido más tarde a Blaise de Vigenère, concretamente en el siglo XIX, y por ello aún se le conoce como el «cifrado Vigenère».
#!/usr/bin/python
#-*- coding: utf-8 -*-
#
abc = "abcdefghijklmnopqrstuvwxyz "
def cifrar(cadena, clave): # FUNCION CIFRADO
text_cifrar = ""
i = 0
for letra in cadena:
suma = abc.find(letra) + abc.find(clave[i % len(clave)])
modulo = int(suma) % len(abc)
text_cifrar = text_cifrar + str(abc[modulo])
i = i + 1
return text_cifrar
def descifrar(cadena, clave):
text_cifrar = ""
i = 0
for letra in cadena:
suma = abc.find(letra) - abc.find(clave[i % len(clave)])
modulo = int(suma) % len(abc)
text_cifrar = text_cifrar + str(abc[modulo])
i = i + 1
return text_cifrar
def main():
c = str(raw_input("Introduce cadena a cifrar: ")).lower()
clave = str(raw_input("Introduce clave: ")).lower()
print cifrar(c, clave)
print
c = str(raw_input("Introduce cadena a descifrar: ")).lower()
clave = str(raw_input("Introduce clave: ")).lower()
print descifrar(c, clave)
print
if __name__ == "__main__":
main()
El resultado sería el siguiente:
Introduce cadena a cifrar: cifrado de giovan battista belasso
Introduce clave: python
rfyyoqcxwlntxlnhamqyl wehysisyppkv
Introduce cadena a descifrar: rfyyoqcxwlntxlnhamqyl wehysisyppkv
Introduce clave: python
cifrado de giovan battista belasso
Tabla de Vigenère

