Feladat:
Már a XVI. században komoly titkosítási módszereket találtak ki az üzenetek elrejtésére. A század egyik legjobb kriptográfusának Blaise de Vigenère-nek a módszerét olvashatja a következőkben. A kódoláshoz egy táblázatot és egy ún. kulcsszót használt. A táblázatot a jobb oldali ábra tartalmazza. A tábla adatait a vtabla.dat fájlban találja a következő formában.
Feladat leírás: itt, forrás állományok: itt.
Megoldás:
in_tab = 'öüóőúéáűíÖÜÓŐÚÉÁŰÍ' outtab = 'ouooueauiOUOOUEAUI' deltab = ' ,.!?;:#()[]{}-=+*' tab = str.maketrans(in_tab, outtab, deltab) nyilt = input('Nyílt szöveg: ').translate(tab).upper() print('Szöveg átalakítása: ', nyilt) kulcs = (input('Kulcsszó: ').upper() * len(nyilt))[0:len(nyilt)] print('Nyílt szöveg és kulcs együtt:', nyilt, kulcs, sep='\n') with open('vtabla.dat', 'r') as f: vtabla = [line.strip() for line in f] kodolt = '' for i in range(len(nyilt)): sor = vtabla[0].find(kulcs[i]) for j in range(len(vtabla)): if vtabla[j][0] == nyilt[i]: oszl = j break kodolt += vtabla[oszl][sor] print('Kódolt szöveg:', kodolt, sep='\n') with open('kodolt.dat', 'w') as f: f.write(kodolt) print('Kódolt szöveg fájlba írása: kodolt.dat')