Samstag, 29. Dezember 2012

Caesar-Verschlüsselung

Zum Zeitvertreib habe ich gerade einmal die Caesar-Verschlüsselung implementiert. Im Python-Forum gibt es dazu einen eigenen Thread und eine Reihe sehr interessanter Skripte und Ansätze. An sich eine einfache Geschichte:
import string


def verschluesseln(text,verschiebung):
    ''' Verschluesselt nach der 'Caesar-Verschiebung'
    http://de.wikipedia.org/wiki/Caesar-Verschlüsselung
    
    '''
    abc = string.ascii_lowercase
    geheim = []
    
    for a in text.lower():
        if a in abc:
            letterIndex = (abc.index(a) + verschiebung) % 26
            geheim.append(abc[letterIndex])
        else:
            geheim.append(a)
    
    return "".join(geheim)


def entschluesseln(text,verschiebung):
    ''' Soll den verschluesselten Text und die
    urspruenglische Verschiebung erhalten. Gibt dann
    den entschluesselten Text zurueck.
    '''
    return verschluesseln(text,-1 * verschiebung)



text = "Das ist ein Text, der das Verfahren verdeutlichen soll."

whaw = verschluesseln(text,3)
print(whaw)

print(entschluesseln(whaw,3))
Spannend ist nun eigentlich an dieser Sache, ob man den Quelltext des eigentlichen Skripts noch reduziert bekommt. Augenblicklich benötige ich 9 Codezeilen und frage mich, ob es noch deutlich kürzer auszudrücken geht bei gleichzeitiger Lesbarkeit.

Keine Kommentare:

Kommentar veröffentlichen