Implementierung der Caesar-Verschlüsselung

PythonBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du die Caesar-Verschlüsselung implementierst, eine einfache und weit verbreitete Verschlüsselungstechnik. Die Caesar-Verschlüsselung verwendet eine Substitutionsmethode, um englische Zeichen in einer Nachricht durch das Zeichen N Positionen später oder früher in der Alphabetreihenfolge zu ersetzen.

👀 Vorschau

## Beispiel 1
text = "python"; encryption_text = "ravjqp"
## Beispiel 2
text = "pyThon"; encryption_text = "raVjqp"
## Beispiel 3
text = "Python31"; encryption_text = "Ravjqp31"
## Beispiel 4
text = None; encryption_text = None

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Projektumgebung einrichtest und die erforderlichen Dateien erstellst
  • Wie du die Caesar-Verschlüsselungsfunktion implementierst, um jedes englische Zeichen in einem String um 2 Positionen nach rechts zu verschieben
  • Wie du verschiedene Arten von Eingaben behandelst, einschließlich englischer Zeichen, nicht-englischer Zeichen und Nullwerte
  • Wie du die Caesar-Verschlüsselungsfunktion mit verschiedenen Eingabebeispielen testest

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Die Grundprinzipien der Caesar-Verschlüsselungstechnik zu verstehen
  • Eine Caesar-Verschlüsselungsfunktion in Python zu implementieren, ohne auf jede Standard- oder Drittanbieterbibliothek zurückzugreifen
  • Fähigkeiten im Umgang mit Zeichenkettenmanipulation, Zeichensatzkodierung und bedingter Logik zu entwickeln
  • Deinen Code zu testen, um sicherzustellen, dass er den Projektanforderungen entspricht

Implementiere die Caesar-Verschlüsselung

In diesem Schritt wirst du die Caesar-Verschlüsselungsfunktion implementieren.

  1. Öffne die Datei caesar_cipher.py.

  2. Ändere die Funktion caesar_encryption(text) so, dass die gewünschte Funktionalität erreicht wird:

    • Nehme einen String als Eingabe und verschiebe jedes englische Zeichen im String um 2 Positionen nach rechts.
    • Konvertiere nur halbbreite englische Zeichen, lasse den Rest unverändert.
    • Die Groß-/Kleinschreibung der Zeichen sollte unverändert bleiben, z. B. wird A zu C und b zu d umgewandelt.
  3. Ersetze den Kommentar """TODO""" durch folgenden Code:

def caesar_encryption(text: str) -> str:
    if text is None:
        return None
    encryption_text = ""
    for char in text:
        if char.isalpha() and char.isascii():
            if char.islower():
                encryption_text += chr((ord(char) - ord("a") + 2) % 26 + ord("a"))
            else:
                encryption_text += chr((ord(char) - ord("A") + 2) % 26 + ord("A"))
        else:
            encryption_text += char
    return encryption_text

Dieser Code implementiert den Caesar-Verschlüsselungsalgorithmus, wie in den Projektanforderungen beschrieben.

Teste die Caesar-Verschlüsselung

In diesem Schritt wirst du die Caesar-Verschlüsselungsfunktion mit einigen Beispiel-Eingaben testen.

  1. Füge folgenden Code am Ende der Datei caesar_cipher.py hinzu:
if __name__ == "__main__":
    test_input_text = input()
    print(caesar_encryption(test_input_text))
  1. Speichere die Datei caesar_cipher.py.
  2. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.
  3. Führe das Skript caesar_cipher.py mit dem folgenden Befehl aus:
python3 caesar_cipher.py
  1. Gib einige Test-Eingabetexte ein und beobachte die verschlüsselte Ausgabe.

Verifiziere die Anforderungen

In diesem Schritt wirst du überprüfen, ob deine Implementierung den Projektanforderungen entspricht.

  1. Überprüfe die Projektanforderungen und sicherstelle, dass deine Funktion caesar_encryption(text):

    • Einen String als Eingabe nimmt und jedes englische Zeichen im String um 2 Positionen nach rechts verschiebt.
    • Nur halbbreite englische Zeichen umwandelt und den Rest unverändert lässt.
    • Die Groß-/Kleinschreibung der Zeichen beibehält, z. B. wird A zu C und b zu d umgewandelt.
  2. Teste deine Funktion mit den bereitgestellten Referenzbeispielen:

## Beispiel 1
text = "python"; encryption_text = "ravjqp"
## Beispiel 2
text = "pyThon"; encryption_text = "raVjqp"
## Beispiel 3
text = "Python31"; encryption_text = "Ravjqp31"
## Beispiel 4
text = None; encryption_text = None
  1. Stelle sicher, dass deine Funktion alle Testfälle richtig behandelt.

Herzlichen Glückwunsch! Du hast das Caesar-Verschlüsselungsprojekt abgeschlossen. Wenn du Fragen hast oder weitere Hilfe benötigst, zögere nicht, zu fragen.

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben