Python :: Aufgabe #23 :: Lösung #3

5 Lösungen Lösungen öffentlich
#23

Mit Caesar Chiffre ent- und verschlüsseln

Anfänger - Python von Dome - 03.01.2013 um 01:30 Uhr
Schreiben Sie ein Programm, indem Sie mit Hilfe der Caesar Chiffre einen beliebigen Text ent- und verschlüsseln können. Zuvor muss der Text und die Anzahl der Verschiebung angegeben werden. Groß- und Kleinschreibung muss nicht beachtet werden.

Konsolenausgabe:

Geben Sie den Text ein: Beispielwort
Um wie viele Stellen soll verschoben werden: 1
Ergebnis: Cfjtqjfmxpsu
#3
vote_ok
von Nachbar (2820 Punkte) - 20.08.2016 um 21:30 Uhr
Quellcode ausblenden Python-Code
# -*- coding: utf-8 -*-

b = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",\
    "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

print "Verschlüsseln: v"
print "Entschlüsseln: e"

x = 0
while x < 1:
    auswahl = raw_input("\nAuswahl: ")
    if auswahl != "v" and auswahl != 'e':
        print "\nBitte entweder 'v' oder 'e' eingeben!"
    else:
        x = 1
# Verschlüsselung       
if auswahl == "v":
    eingabe = raw_input("\nBitte das zu verschlüsselnde Wort eingeben: ").lower()    
    rot = input("Stellenanzahl für Verschiebung: ")    
    chiffre = ""
    x = 0
    while x < len(eingabe):
        # Position des Buchstaben ermitteln        
        indexBuchstabe = b.index(eingabe[x])
        # Position nach Verschiebung ermitteln        
        if indexBuchstabe + rot > 25:
            indexBuchstabe_ab_anfang = (indexBuchstabe + rot) % 26
            chiffre = chiffre + b[indexBuchstabe_ab_anfang]
        else:
            chiffre = chiffre + b[indexBuchstabe + rot]
        x = x + 1
    print "\nVerschiebung um " + str(rot) + " Stellen ergibt den \
Begriff: " + chiffre
# Entschlüsselung
else:
    eingabe = raw_input("\nBitte das zu entschlüsselnde Wort eingeben: ").lower()    
    rot = input("Stellenanzahl für Verschiebung: ")    
    dechiffre = ""
    x = 0
    while x < len(eingabe):
        indexBuchstabe = b.index(eingabe[x])
        if indexBuchstabe + rot > 25:
            indexBuchstabe_ab_anfang = (indexBuchstabe - rot) % 26
            dechiffre = dechiffre + b[indexBuchstabe_ab_anfang]
        else:
            dechiffre = dechiffre + b[indexBuchstabe - rot]
        x = x + 1
    print "\nVerschiebung um " + str(rot) + " Stellen ergibt den \
Begriff: " + dechiffre

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben