Implementierung der Clear Code Verschlüsselung

PythonBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du einen einfachen Verschlüsselungs- und Entschlüsselungsalgorithmus namens "Clear Code Encryption" implementierst. Diese Verschlüsselungsmethode wurde im frühen Telegraphiekommunikationssystem Chinas während der späten Qing-Dynastie verwendet.

👀 Vorschau

## Beispiel 1
numb = 1530; encryption_text = "0383"
## Beispiel 2
numb = 0; encryption_text = "9853"
## Beispiel 3
numb = 12345; encryption_text = None

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Verschlüsselungsmethode und ihre zugrunde liegenden Prinzipien verstehst
  • Wie du die Funktion plain_code_encryption(numb) implementierst, um die Verschlüsselung durchzuführen
  • Wie du die Verschlüsselungsfunktion mit verschiedenen Eingaben testest
  • Wie du die Benutzereingabe verarbeitest und die Verschlüsselungsfunktion aufrufst

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Die "Clear Code Encryption"-Methode und ihren historischen Hintergrund zu erklären
  • Einen grundlegenden Verschlüsselungs- und Entschlüsselungsalgorithmus mit Python zu implementieren
  • Die Verschlüsselungsfunktion mit verschiedenen Eingabescenarios zu testen und zu validieren
  • Die Benutzereingabe und -ausgabe in das Verschlüsselungsskript zu integrieren

Verstehe die Verschlüsselungsmethode

In diesem Schritt wirst du die Verschlüsselungsmethode lernen, die im Projekt "Clear Code Encryption" verwendet wird.

Die Verschlüsselungsmethode funktioniert wie folgt:

  1. Die vier Ziffern des Klartexts werden jeweils zu den vier Ziffern des Verschlüsselungsschlüssels addiert.
  2. Bei jeder Ziffernaddition, wenn die Summe größer oder gleich 10 ist, wird 10 weggelassen und nur die Ziffer an der Einerstelle beibehalten.
  3. Beim Entschlüsseln wird das Passwort von den vier Ziffern des Entschlüsselungsschlüssels subtrahiert, um den Klartext zu erhalten und den entsprechenden Text zu finden.

Nehmen wir beispielsweise an, dass der Klartext 1530 und der Verschlüsselungsschlüssel 9853 ist.

  1. Addieren der ersten Ziffer: 1 + 9 = 10, betrachte 10 als 0.
  2. Addieren der zweiten Ziffer: 5 + 8 = 13, wegleiche 10 und behalte 3.
  3. Addieren der dritten Ziffer: 3 + 5 = 8.
  4. Addieren der vierten Ziffer (10 + 3 = 13, wegleiche 10 und behalte 3).

Der endgültige verschlüsselte Text lautet "0383".

Implementiere die Funktion plain_code_encryption(numb)

In diesem Schritt wirst du die Funktion plain_code_encryption(numb) in der Datei plain_code.py implementieren.

  1. Öffne die Datei plain_code.py in deinem Code-Editor.
  2. Lasse die Funktion plain_code_encryption(numb) auftauchen.
  3. Implementiere die Funktion, um die folgenden Aufgaben auszuführen:
    • Nehme eine beliebige Zahl zwischen 0 und 9999 (einschließlich 0 und 9999) als Eingabe, addiere 9853 zu ihr und erhalte eine 4-stellige Zahl (im Format str) nach der Addition, und gebe sie zurück.
    • Wenn die eingegebene Zahl weniger als 4 Stellen hat, fülle die fehlenden Stellen mit 0. Beispielsweise, wenn die eingegebene Zahl 32 ist, muss sie als 0032 behandelt werden.
    • Addiere die Zahlen an der gleichen Stelle. Wenn die Summe größer oder gleich 10 ist, wegleiche 10 und behalte nur die Ziffer an der Einerstelle.
    • Wenn die eingegebene Zahl nicht zwischen 0 und 9999 liegt, gebe None zurück.

Hier ist der vollständige Code für die Funktion plain_code_encryption(numb):

def plain_code_encryption(numb: int) -> str:
    if numb < 0 or numb > 9999:
        return None

    numb_str = str(numb).zfill(4)
    key_str = "9853"
    encryption_text = "".join(
        str((int(n) + int(k)) % 10) for n, k in zip(numb_str, key_str)
    )

    return encryption_text

Teste die Funktion plain_code_encryption(numb)

In diesem Schritt wirst du die Funktion plain_code_encryption(numb) mit den bereitgestellten Beispielen testen.

  1. Öffne die Datei plain_code.py in deinem Code-Editor.
  2. Füge den folgenden Code am Ende der Datei hinzu:
if __name__ == "__main__":
    print(plain_code_encryption(1530))  ## Ausgabe: "0383"
    print(plain_code_encryption(0))     ## Ausgabe: "9853"
    print(plain_code_encryption(12345)) ## Ausgabe: None
  1. Speichere die Datei und führe das Skript mit dem Befehl python3 plain_code.py aus.
  2. Verifiziere, dass die Ausgabe mit den erwarteten Ergebnissen übereinstimmt.

Behandle die Benutzereingabe

In diesem Schritt wirst du das Skript modifizieren, um Benutzereingaben zu akzeptieren und die Funktion plain_code_encryption(numb) mit der von dem Benutzer bereitgestellten Zahl aufzurufen.

  1. Öffne die Datei plain_code.py in deinem Code-Editor.
  2. Lasse den Code aus dem vorherigen Schritt auftauchen und ersetze ihn durch folgenden:
if __name__ == "__main__":
    txt = int(input())
    print(plain_code_encryption(txt))
  1. Speichere die Datei und führe das Skript mit dem Befehl python3 plain_code.py aus.
  2. Wenn du dazu aufgefordert wirst, gib eine Zahl zwischen 0 und 9999 ein, und das Skript wird den verschlüsselten Text ausgeben.

Herzlichen Glückwunsch! Du hast das Projekt "Clear Code Encryption" abgeschlossen. Du hast gelernt, wie du die Verschlüsselungsmethode implementierst und sie mit verschiedenen Eingaben testest.

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs 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✨ Lösung prüfen und üben