Einführung
In diesem Projekt lernst du, wie du den Affinen Verschlüsselungsalgorithmus in Python implementierst. Der Affine Chiffre ist eine Art Substitutionschiffre, die die Eigenschaften der Shift-Chiffre und der Multiplikator-Chiffre kombiniert. Es verwendet eine kryptographische Funktion, um jedes Zeichen einzeln zu verschlüsseln, was einen einfachen, aber effektiven Weg bietet, Text zu verschlüsseln und zu entschlüsseln.
👀 Vorschau
Beispiel 1: willkommen - > oclsaqc
Beispiel 2: willkommen - > oclsaqc
Beispiel 3: Qrwe - > Qroc
Beispiel 4: Keine - > Keine
🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du die affine Verschlüsselungsfunktion in Python implementierst
- Wie du die affine Verschlüsselungsfunktion mit Beispiel-Eingaben testest
- Wie du die Benutzereingabe mit der affine Verschlüsselungsfunktion verschlüsselst
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Die Grundprinzipien der Affinen Chiffre zu verstehen
- Den affinen Verschlüsselungsalgorithmus in Python zu implementieren
- Text mit der affine Verschlüsselungsfunktion zu verschlüsseln und zu entschlüsseln
- Die affine Verschlüsselungsfunktion mit verschiedenen Eingaben zu testen
Implementiere die affine Verschlüsselungsfunktion
In diesem Schritt lernst du, wie du die affine Verschlüsselungsfunktion in Python implementierst. Folge den Schritten unten, um diesen Schritt abzuschließen:
- Öffne die Datei
affine.pyin deinem Texteditor. - Füge im Inneren der Funktion
affine_encryption(text)folgenden Code hinzu:
def affine_encryption(text: str) -> str:
if text is None or text == "":
return None
a = 5
b = 8
m = 26
encryption_text = ""
for char in text:
if "A" <= char <= "Z" or "a" <= char <= "z":
char = char.lower()
x = ord(char) - ord("a")
y = (a * x + b) % m
encryption_text += chr(y + ord("a"))
else:
encryption_text += char
return encryption_text
Erklärung:
- Die Funktion überprüft zunächst, ob die Eingabe
textNoneoder eine leere Zeichenkette ist. Wenn ja, gibt sieNonezurück. - Die Funktion setzt dann die Werte von
a,bundmwie von der affine-Verschlüsselungsformel erforderlich. - Sie iteriert über jedes Zeichen in der Eingabe
text. - Wenn das Zeichen ein halbweites englischsprachiges Zeichen (zwischen 'A' und 'Z' oder 'a' und 'z') ist, konvertiert es das Zeichen in Kleinbuchstaben, berechnet den entsprechenden numerischen Wert
x, wendet die affine-Verschlüsselungsformely = (a * x + b) % man und fügt das verschlüsselte Zeichen zur Zeichenketteencryption_texthinzu. - Wenn das Zeichen kein halbweites englischsprachiges Zeichen ist, wird es ohne Änderung zur Zeichenkette
encryption_texthinzugefügt. - Schließlich gibt die Funktion die Zeichenkette
encryption_textzurück.
- Speichere die Datei
affine.py.
Teste die affine Verschlüsselungsfunktion
In diesem Schritt wirst du die Funktion affine_encryption() mit den bereitgestellten Beispiel-Eingaben testen.
- Füge im Datei
affine.pyam Ende der Datei folgenden Code hinzu:
if __name__ == "__main__":
## Beispiel 1
text = "willkommen"
encryption_text = affine_encryption(text)
print(f"Beispiel 1: {text} -> {encryption_text}")
## Beispiel 2
text = " willkommen"
encryption_text = affine_encryption(text)
print(f"Beispiel 2: {text} -> {encryption_text}")
## Beispiel 3
text = " Qrwe"
encryption_text = affine_encryption(text)
print(f"Beispiel 3: {text} -> {encryption_text}")
## Beispiel 4
text = None
encryption_text = affine_encryption(text)
print(f"Beispiel 4: {text} -> {encryption_text}")
- Speichere die Datei
affine.py. - Öffne ein Terminal oder eine Eingabeaufforderung, navigiere zum Verzeichnis, das die Datei
affine.pyenthält, und führe folgenden Befehl aus:
python3 affine.py
Dies führt die Funktion affine_encryption() mit den bereitgestellten Beispiel-Eingaben aus und druckt die Ergebnisse aus.
Verifiziere, dass die Ausgabe mit den erwarteten Ergebnissen übereinstimmt:
Beispiel 1: willkommen -> oclsaqc
Beispiel 2: willkommen -> oclsaqc
Beispiel 3: Qrwe -> Qroc
Beispiel 4: None -> None
Wenn die Ausgabe mit den erwarteten Ergebnissen übereinstimmt, funktioniert deine Funktion affine_encryption() korrekt.
Verschlüssele Benutzereingaben
In diesem Schritt wirst du die Datei affine.py ändern, um es dem Benutzer zu ermöglichen, einen Text einzugeben und ihn mit der Funktion affine_encryption() zu verschlüsseln.
- Ersetze im Datei
affine.pyden vorhandenen Code am Ende der Datei (d.h.if __name__ == "__main__":und den darauffolgenden Teil) durch folgenden Code:
if __name__ == "__main__":
text = input("Geben Sie den zu verschlüsselnden Text ein: ")
encryption_text = affine_encryption(text)
if encryption_text is None:
print("Fehler: Die Eingabetext ist leer.")
else:
print(f"Verschlüsselter Text: {encryption_text}")
Erklärung:
- Der Code fordert den Benutzer auf, den zu verschlüsselnden Text einzugeben.
- Anschließend ruft er die Funktion
affine_encryption()mit der Benutzereingabe auf und speichert das Ergebnis in der Variableencryption_text. - Wenn
encryption_textNoneist (was bedeutet, dass der Eingabetext leer war), druckt er eine Fehlermeldung. - Andernfalls druckt er den verschlüsselten Text.
- Speichere die Datei
affine.py. - Öffne ein Terminal oder eine Eingabeaufforderung, navigiere zum Verzeichnis, das die Datei
affine.pyenthält, und führe folgenden Befehl aus:
python3 affine.py
- Wenn Sie dazu aufgefordert werden, geben Sie einen zu verschlüsselnden Text ein und beobachten Sie die Ausgabe.
Herzlichen Glückwunsch! Sie haben die Implementierung der affinen Verschlüsselungsfunktion abgeschlossen und sie mit verschiedenen Eingaben getestet.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben dieses Projekt abgeschlossen. Sie können in LabEx weitere Übungen absolvieren, um Ihre Fähigkeiten zu verbessern.



