Kalandozás a python programozás földjén.

Python, ahogy én ...

Érettségi 2005 (Vigenère tábla)

2019. május 29. - d3c0d3r

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')

A bejegyzés trackback címe:

https://python-kalandok.blog.hu/api/trackback/id/tr2814868300

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása