Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:encryption2 [2024-04-26 11:59] – [Symmetrische Verschlüsselung] gra | gf_informatik:encryption2 [2024-06-06 11:38] (aktuell) – gra | ||
---|---|---|---|
Zeile 122: | Zeile 122: | ||
- Verbessere das Programm so, dass Leerschläge nicht verschoben werden, sodass das Chiffrat an den gleichen Stellen Leerschläge enthält wie der Klartext. Dein Programm soll erst den Klartext, dann das Chiffrat ausgeben. | - Verbessere das Programm so, dass Leerschläge nicht verschoben werden, sodass das Chiffrat an den gleichen Stellen Leerschläge enthält wie der Klartext. Dein Programm soll erst den Klartext, dann das Chiffrat ausgeben. | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python caesar_01.py> | <code python caesar_01.py> | ||
Zeile 152: | Zeile 152: | ||
- Nutze die Funktion caesar(), um aus dem Chifrat wieder den Klartext zu generieren. Ergänze dein Programm, sodass es auch noch den dechiffrierten Klartext ausgibt. | - Nutze die Funktion caesar(), um aus dem Chifrat wieder den Klartext zu generieren. Ergänze dein Programm, sodass es auch noch den dechiffrierten Klartext ausgibt. | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
Zeile 245: | Zeile 245: | ||
- Welche Änderungen bzw. Ergänzungen musst du an der Caesar-Funktion vornehmen, damit sie zur Vigenere-Funktion wird und obige Anforderungen erfüllt? Notiere deine Ideen als Kommentare im Code. | - Welche Änderungen bzw. Ergänzungen musst du an der Caesar-Funktion vornehmen, damit sie zur Vigenere-Funktion wird und obige Anforderungen erfüllt? Notiere deine Ideen als Kommentare im Code. | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
- Der Name der Funktion und die Namen der Argumente ändern sich. | - Der Name der Funktion und die Namen der Argumente ändern sich. | ||
Zeile 264: | Zeile 264: | ||
++++ | ++++ | ||
- | ++++Test:| | + | ++++Testcode:| |
Teste die Vigenere-Funktion mit folgendem Code: | Teste die Vigenere-Funktion mit folgendem Code: | ||
Zeile 279: | Zeile 279: | ||
++++ | ++++ | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
Zeile 306: | Zeile 306: | ||
* Hierzu könnte '' | * Hierzu könnte '' | ||
- | < | + | < |
++++Lösung: | ++++Lösung: | ||
<code python> | <code python> | ||
Zeile 424: | Zeile 424: | ||
\\ | \\ | ||
=== Aufgabe 7 – XOR-Verschlüsselung in python programmieren === | === Aufgabe 7 – XOR-Verschlüsselung in python programmieren === | ||
- | Schreibe eine Funktion '' | + | Schreibe eine Funktion '' |
- | * Der Funktion übergibt man die Nachricht | + | * Der Funktion übergibt man die Nachricht und das Schlüsselwort. |
* Die Funktion gibt den ver- bzw. entschlüsselten Text zurück. | * Die Funktion gibt den ver- bzw. entschlüsselten Text zurück. | ||
* Auch Satzzeichen und Leerschläge werden verschlüsselt. | * Auch Satzzeichen und Leerschläge werden verschlüsselt. | ||
Zeile 434: | Zeile 434: | ||
* Der XOR-Operator in python ist ein '' | * Der XOR-Operator in python ist ein '' | ||
+ | <nodisp 1> | ||
++++Lösung: | ++++Lösung: | ||
**Ausführliche Version:** | **Ausführliche Version:** | ||
<code python> | <code python> | ||
- | def cryptXOR(plainText, keyWord): | + | def crypt_xor(message_in, key_word): |
- | | + | |
- | | + | |
- | for letter in plainText: | + | for letter in message_in: |
- | | + | |
- | | + | |
- | | + | |
- | letter = chr(asciiResult) # Zeichen zu diesem neuen ASCII-Code ermitteln | + | letter = chr(code_message_out) |
- | | + | |
- | cipherText = cipherText + letter | + | key_count |
- | return | + | return |
</ | </ | ||
**Kompakte Version:** | **Kompakte Version:** | ||
<code python> | <code python> | ||
- | def cryptXOR(plainText, keyWord): | + | def crypt_xor(message_in, key_word): |
- | | + | |
- | | + | |
- | for letter in plainText: | + | for letter in message_in: |
- | letter = chr(ord(letter) ^ ord(keyWord[kCount])) | + | letter = chr(ord(letter) ^ ord(key_word[key_count])) |
- | | + | |
- | cipherText = cipherText + letter | + | key_count |
- | return | + | return |
</ | </ | ||
++++ | ++++ | ||
+ | </ | ||
\\ | \\ | ||
=== Aufgabe 8 – Funktion cryptXOR testen === | === Aufgabe 8 – Funktion cryptXOR testen === | ||
Zeile 469: | Zeile 470: | ||
<code python> | <code python> | ||
key = " | key = " | ||
- | cipher = cryptXOR("Nur ein garstiges Aschenputtel ist noch da. Das sitzt unten in der Asche, dem kann der Pantoffel nicht passen!", | + | cipher = crypt_xor("Nur ein garstiges Aschenputtel ist noch da. Das sitzt unten in der Asche, dem kann der Pantoffel nicht passen!", |
print(cipher) | print(cipher) | ||
- | print(cryptXOR(cipher, key)) | + | print(crypt_xor(cipher, key)) |
</ | </ | ||