Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:verschluesselung:caesar [2025-03-17 08:22] – [Aufgabe C2] hof | gf_informatik:verschluesselung:caesar [2025-03-18 15:34] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 119: | Zeile 119: | ||
| 1. Eine mit der Caesar-Methode verschlüsselte Nachricht kann man problemlos mit Brute-Force entschlüsseln (alle Möglichkeiten ausprobieren). Funktioniert dies bei der monoalphabetische Verschlüsselung auch? Gibt es bessere Möglichkeiten, | 1. Eine mit der Caesar-Methode verschlüsselte Nachricht kann man problemlos mit Brute-Force entschlüsseln (alle Möglichkeiten ausprobieren). Funktioniert dies bei der monoalphabetische Verschlüsselung auch? Gibt es bessere Möglichkeiten, | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| Für den ersten Buchstaben A können wir unter 26 Möglichkeiten auswählen, um ihn umzuplatzieren. Für B bleiben noch 25, für C 24 Möglichkeiten, | Für den ersten Buchstaben A können wir unter 26 Möglichkeiten auswählen, um ihn umzuplatzieren. Für B bleiben noch 25, für C 24 Möglichkeiten, | ||
| Zeile 138: | Zeile 138: | ||
| ++++ | ++++ | ||
| - | < | + | < |
| ++++Mehr Tipps| | ++++Mehr Tipps| | ||
| <code python> | <code python> | ||
| Zeile 163: | Zeile 163: | ||
| </ | </ | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| <code python> | <code python> | ||
| Zeile 256: | Zeile 256: | ||
| ``` | ``` | ||
| ++++ | ++++ | ||
| - | < | + | < |
| ++++Python Lösung| | ++++Python Lösung| | ||
| <code python> | <code python> | ||
| Zeile 269: | Zeile 269: | ||
| return text | return text | ||
| | | ||
| - | |||
| def count_letters(text): | def count_letters(text): | ||
| """ | """ | ||
| Zeile 315: | Zeile 314: | ||
| from urllib.request import urlopen | from urllib.request import urlopen | ||
| count = 0 | count = 0 | ||
| - | data = faust = urlopen(< | + | data = urlopen(< |
| - | for line in data.readlines(): | + | text = data.read().decode(' |
| - | line = line.decode(' | + | |
| - | line = line.replace(' | + | |
| - | if 10 <= count <= 20: | + | |
| - | print(line) # Achtung: keine gute Idee, wenn File sehr viele Zeilen beinhaltet! Baue z.B. Counter ein, damit nach z.B. 100 Ausgaben abbricht | + | |
| - | count += 1 | + | |
| </ | </ | ||
| - | |||
| - | Beachte, dass du noch die erste und letzte Zeilennummer im Buch angeben musst: Der Text am Anfang und Ende des Files gehört nicht zum Buch und soll ignoriert werden. | ||
| Kontrolle: am häufigsten vorkommen sollte $E$ (gut $15\%$), gefolgt von $N$ (ca. $10\%$) und $S$. Die letzten Ränge machen typischerweise $Y$, $Q$ und $X$ unter sich aus. | Kontrolle: am häufigsten vorkommen sollte $E$ (gut $15\%$), gefolgt von $N$ (ca. $10\%$) und $S$. Die letzten Ränge machen typischerweise $Y$, $Q$ und $X$ unter sich aus. | ||
| - | < | + | < |
| ++++Lösung mit Gutenberg| | ++++Lösung mit Gutenberg| | ||
| <code python> | <code python> | ||