Python - Caesar Cipher
Security in Systemen hfd. 8
Leerdoelen
- Werken met builtin python functies
Opdracht Caesar Cipher
- Maak een script dat een substitutie uitvoert (encryptie)
- Security Boris Sondagh Hfd. 8 Cryptografie
Encryptie door Caesar
- Julias Caesar gebruikte het als communicatie middel
- Voor commando's aan zijn generaals
- Er schijnen meer complexe varianten geweest te zijn
- ROT13 is precies in het midden
Tekst en nummers
- Computerswerken met binaire getallen
- Mensen werken met tekst
- Tekst moet omgezet worden naar nummers
- Er moet een vertaaltabel zijn van character naar nummer
- De meest bekende tabel: ASCII-tabel
ASCII table
- A = 0100 0001 = 65
- a = 0110 0001 = 97
- 0 = 0011 0000 = 48
Python char conversie
- Karakters omzetten naar nummers
- Built in functions
- ord zet character om in decimale waarde
- chr zet decimale waarde om in character
Voorbeeld code schuiven
naam="MijnTekst1"
for char in naam:
int_char = ord(char) # Get numeric value of char
int_char += 1 # Shift one to the right
enc_char = chr(int_char) # Get character from value
print(f"{char} – {enc_char}")
Hou het simpel
- We willen berichten omzetten
- Alleen hoofdletters, kleine letters en cijfers
- Uppercase, lowercase and numbers
- Alle andere tekens doen we niets mee!
Extra handigheidjes
- Per variabele kan je vaststellen of deze uppercase, lowercase of een nummer is
- <var-naam>.isupper
- <var-naam>.islower
- <var-naam>.isnumeric
- De uitkomst is True als hij waar is
Voorbeeld code detectie
naam="MijnTekst1"
for char in naam:
if char.isupper():
case = ‘Hoofdletter’
elif char.islower():
case = ‘Kleine letter’
elif char.isnumeric():
case = ‘Nummer’
print(f"{char} – {case}")
Opdracht Caesar Cipher
- Maak een script dat een substitutie uitvoert (encryptie)
- Security Boris Sondagh Hfd. 8 Cryptografie
- Denk erom dat je
- na de Z weer bij A moet beginnen
- na z weer bij a moet beginnen
- na 9 weer bij de 0 komt
- leestekens niet verandert
- De gebruiker kiest voor de verschuiving een waarde tussen 1 en 9
- Gebruik if/elif/else, for, while en try/except
- Functies maken het leven simpel