Din egen chattbot - Marvin - kryptera och dekryptera
Programmering och problemlösning i Python. Lär Marvin lite mer, denna gången om kryptering och dekryptering.
#Förkunskaper
Du kan grunderna i Python med listor och dictionaries och du har byggt fjärde delen av Marvin.
#Introduktion
ROT13 är enkelt chiffer som flyttar varje bokstav 13 positioner framåt.
Caesarchiffer är en variant av ROT13 där man väljer antalet positioner som bokstaven skall flyttas.
Det räcker om du enbart använder det engelska alfabetet i uppgiften, A-Z och a-z.
Boken Invent your games with Python har i kapitel 14 en beskrivning av Ceasar Chiper.
Boken “Invent with Python: Learn to program by hacking ciphers” har två kapitel som kan vara bra att kika på:
#Krav
Utgå från din kod i katalogen me/kmom05/marvin4
och bygg vidare där.
# Ställ dig i roten av kurskatalogen
cd me/kmom05/marvin4
Menyval D2: Lär Marvin koda om en sträng med ROT13.
Menyval D3: Lär Marvin koda Ceasarchiffer med valbart antal teckens justering.
Menyval D4: Lär Marvin knäcka ett Ceasarchiffer den hårda vägen genom att visa upp alla alternativ och låta användaren bestämma vilket som är rätt antal teckens justering. Du knäcker ett Ceasarchiffer genom att ta en krypterad sträng och “kryptera baklänges”, det vill säga att du shiftar -1, -2, -3 och så vidare med alla möjliga justeringar.
Validera Marvin genom att göra följande kommando i kurskatalogen i terminalen.
# Ställ dig i kurskatalogen
dbwebb validate marvin4
Rätta eventuella fel som dyker upp och validera igen. När det ser grönt ut så är du klar.
#Extrauppgift
- Menyval D5: Använd följande rader och lär Marvin att automatiskt dekryptera dem. Använd ordlistor och din kunskap om letter frequency för att göra Marvin smartare.
R UXEN VH TRCCH, FR DBMMR EHOXL FX, CXPNCQNA FN'AN BX QJYYH, OBR OZKOMG QOFSTFSS. PDKQCD IU DAWZ DWO OQOLEYEKJO, FTMF U WQQB GZPQD YK TMF, AR ITMF YUSTF TMBBQZ, DA D NCMVIF OJ OCZ NDUZ JA V MVO. ZFBI. J'N QSFUUZ TVSF NZ DBU XPVME FBU NF.
#Tips från coachen
Använd debuggern för att felsöka.
Validera ofta. Så slipper du en massa valideringsfel i slutet av övningen.
Lycka till och hojta till i forumet om du behöver hjälp!
#Revision history
- 2018-08-13: (A, aar) Kopierade Marvin steg 4 från v1.