Skip to content

Instantly share code, notes, and snippets.

@karlbeecken
Created December 10, 2020 07:32
Show Gist options
  • Save karlbeecken/a5234cf16dadb46e3d03ff230a4f185f to your computer and use it in GitHub Desktop.
Save karlbeecken/a5234cf16dadb46e3d03ff230a4f185f to your computer and use it in GitHub Desktop.
de and encrypt vigenere chiffre
def caesar(klartext, schluessel):
klartext = klartext.upper()
geheimtext = ""
for i in range(0, len(klartext)):
buchstabe = klartext[i]
ascii = ord(buchstabe)
code = ascii + schluessel
while (code > 90):
code = code - 26
geheimbuchstabe = chr(code)
geheimtext += geheimbuchstabe
return geheimtext
def decaesar(geheimtext, schluessel):
return caesar(geheimtext, 26 - schluessel % 26)
def vigenere(clear, key):
clear = clear.lower()
key = key.lower()
out = ""
j = 0
for i in range(len(clear)):
if (j >= len(key)):
j = 0
caesarIn = ord(key[j]) - 97
out += caesar(clear[i], caesarIn)
j += 1
return out
def devigenere(secret, key):
secret = secret.lower()
key = key.lower()
out = ""
j = 0
for i in range(len(secret)):
if (j >= len(key)):
j = 0
caesarIn = ord(key[j]) - 97
out += decaesar(secret[i], caesarIn)
j += 1
return out
clear = "TRITHEMIUSUNDVIGENERE"
secret = "ZVPXPQSMBWCZJZPKMZKVL"
key = "geheim"
print("Geheimtext:", vigenere(clear, key))
print("Klartext:", devigenere(secret, key))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment