forked from pythonfoo/pythonfooLite
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcaesar_encode.py
More file actions
41 lines (33 loc) · 1.38 KB
/
caesar_encode.py
File metadata and controls
41 lines (33 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python3
u"""
Dieses Programm implementiert die Cäsarchiffre, die schon Gaius Julius Cäsar
benutzt haben soll, um mit seinen Generälen vertraulich zu kommunizieren.
Es handelt sich dabei um eine monoalphabetische Subtitutionschiffre, das
bedeutet, jeder Buchstabe im Klartext wird durch einen anderen Buchstaben aus
dem Alphabet ersetzt, bei der Cäsarchiffre wird dieser zweite Buchstaben durch
Verschiebung um einen festen Wert ermittelt. Dieser feste Wert bildet dabei den
Schlüssel. https://de.wikipedia.org/wiki/Caesar-Verschl%C3%BCsselung
Dieses Programm kümmert sich um die Verschlüsselung mit Hilfe der
Caesarchiffre, wohingegen sich caesar_decode.py um die Entschlüsselung kümmert.
"""
plaintext = input("Bitte den Klartext eingeben: \n")
key = input("Bitte die Verschiebungszahl eingaben: ")
key = int(key)
plaintext = plaintext.upper()
# An dieser Stelle wird das Alphabet durch die ASCII Werte der Buchstaben
# erzeugt
alphabet = []
for i in range(26):
alphabet += chr(65 + i)
# Später soll in secret der verschlüsselte Text stehen
secret = ""
for char in plaintext:
# Falls der Buchstabe nicht in dem Alphabet vorhanden ist, wird er auch
# nicht verschlüsselt
if char not in alphabet:
secret += char
continue
tmp = alphabet.index(char)
new_char = alphabet[(tmp + key) % len(alphabet)]
secret += new_char
print(secret)