Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Modul Base64 v Pythone je výkonný nástroj na kódovanie a dekódovanie správ. Môžete ho použiť na bezpečné odosielanie údajov cez internet. Je to štandardný postup pre webové stránky, aplikácie a komunikačné služby, ktoré používajú tento druh kódovania na ochranu citlivých údajov pred nepriateľskými hackermi.

Modul Base64 má dvojicu funkcií, ktoré môžete použiť na kódovanie a dekódovanie správ, čím sa zvyšuje bezpečnosť vašich dátových prenosov.

Modul Tkinter a Base64

Tkinter vám umožňuje vytvárať desktopové aplikácie. Ponúka množstvo miniaplikácií, ako sú tlačidlá, štítky a textové polia, ktoré uľahčujú vývoj aplikácií bez príliš veľkého úsilia. Pomocou Tkinter môžete vytvárať neuveriteľné GUI programy. Mal by si zostaviť jednoduchú kalkulačku, aplikácia so zoznamom úloh alebo a testovacia hra na písanie. Ak chcete nainštalovať Tkinter do svojho systému, otvorte terminál a zadajte:

instagram viewer
pip nainštalovať tkinter

BASE64 poskytuje funkcie na kódovanie binárnych údajov do ASCII a ich spätné dekódovanie na binárne. Podporuje štandardné kódovanie aj kódovanie bezpečné pre adresy URL, vďaka čomu je prenos informácií bezpečnejší. Ak chcete previesť reťazec na znak Base64, získajte hodnotu ASCII každého znaku a vypočítajte jeho 8-bitovú binárnu hodnotu. Preveďte túto časť 6 bitov preskupením číslic a ich opätovným prevodom na ich príslušné desatinné hodnoty. Nakoniec použite kódovaciu tabuľku Base64 na získanie hodnôt Base64 pre každé desatinné miesto.

Ako kódovať a dekódovať správy v Pythone

Zdrojový kód tohto projektu nájdete v ňom úložisko GitHub.

Začnite importovaním oboch modulov. Inicializujte inštanciu Tkinter a zobrazte koreňové okno. Nastavte nadpis, rozmery v pixeloch a farbu pozadia okna.

od tkinter importovať *
importovať základ 64

koreň = Tk()
root.geometry('750 x 400')
root.configure (pozadie='aqua')
root.title("Kódovanie a dekódovanie správ pomocou Pythonu")

Použite miniaplikácie Label na zobrazenie užitočných informácií o aplikácii. Štítok akceptuje nadradené okno, do ktorého ho chcete umiestniť, text, ktorý by mal zobraziť, a štýl písma, farbu a farbu pozadia. Použite balenie() na usporiadanie miniaplikácie do bloku rozloženia pred jej umiestnením do nadradenej miniaplikácie. StringVar uľahčuje ovládanie hodnoty miniaplikácie, ako je štítok alebo položka.

Označenie (koreň, text='Python Message Encoder and Decoder', font='arial 25 bold', fg='biely', bg="Fialová").balenie()
Text = StringVar()
kľúč = StringVar()
režim = StringVar()
Výsledok = StringVar()

Definujte funkciu Kódovať() ktorý akceptuje kľúč na kódovanie a dekódovanie spolu so správou. Definujte prázdny zoznam a opakujte až do dĺžky správy. Nastavte index kľúča ako modul operácie a uložte jeho hodnotu do premennej key_c. Použite ord() získať hodnotu Unicode znaku a použiť chr() získať znak, ktorý predstavuje zadanú hodnotu.

Pridajte túto hodnotu do zoznamu. Pripojte každý prvok zoznamu prázdnym reťazcom a použite reťazec kódovať () metóda na vrátenie verzie reťazca zakódovanej utf-8. The base64.urlsafe_b64encode() metóda zakóduje tento vstup a nahradí - znakmi + a _ znakmi /.

defZakódovať(kľúč, správa):
enc = []

pre i v rozsah (len (správa)):
key_c = kľúč[i % len (kľúč)]
enc.append (chr((ord (správa[i]) + ord (key_c)) % 256))

vrátiť base64.urlsafe_b64encode("".join (enc).encode()).decode()

Definujte funkciu Dekódovať() ktorý akceptuje kľúč na kódovanie a dekódovanie spolu so správou. Definujte prázdny zoznam a dekódujte správu. Iterujte až po dĺžku správy a nastavte modul operácie ako index a uložte jeho hodnotu do key_c. Pridajte znak dekódovania správy reťazca Unicode, ako je uvedené nižšie. Vráťte dekódovaný reťazec.

defDekódovať(kľúč, správa):
dec = []
message = base64.urlsafe_b64decode (správa).decode()

pre i v rozsah (len (správa)):
key_c = kľúč[i % len (kľúč)]
dec.append (chr((256 + ord (správa[i]) - ord (key_c)) % 256))

vrátiť"".join (dec)

Definujte funkciu režim() ktorý získa režim zadaný používateľom v miniaplikácii Entry a vyvolá príslušnú funkciu podľa výberu. V prípade, že používateľ nezadá platnú odpoveď, zobrazí sa chybové hlásenie.

defRežim():
ak (mode.get() == 'E'):
Result.set (Kódovať (key.get(), Text.get()))
elif (mode.get() == 'D'):
Result.set (Decode (key.get(), Text.get()))
inak:
Result.set(„Neplatný režim“)

Definujte funkciu VÝCHOD() zabiť a ukončiť tlmočník bežiaci na pozadí. Definujte funkciu Reset() na vymazanie obsahu poľa Entry.

defVÝCHOD():
root.destroy()

defResetovať():
Text.set("")
key.set("")
mode.set("")
Result.set("")

Definujte miniaplikácie Label a Entry pre správu, kľúč, režim a text. Zadajte rodičovské okno, do ktorého ich chcete umiestniť, štýl písma, text a farbu pozadia. Nastavte tiež súradnice, aby ste ich usporiadali.

Označenie (koreň, font='arial 17 bold', text='správa', fg='čierna', bg="aqua").miesto (x=60, y=100)
Záznam (root, font='arial 15', textvariable=Text, bg='biely').miesto (x=450, y=100)

Označenie (koreň, font='arial 17 bold', text='kľúč', fg='čierna', bg="aqua").miesto (x=60, y=130)
Záznam (root, font='arial 15', textvariable=key, bg='biely').miesto (x=450, y=130)

Označenie (koreň, font='arial 17 bold', text='Mode (E-Encode, D-Decode)', fg='čierna', bg="aqua").miesto (x=60, y=160)
Záznam (root, font='arial 15', textvariable=mode, bg='biely').miesto (x=450, y=160)

Označenie (koreň, font='arial 17 bold', text='Text', fg='čierna', bg="aqua").miesto (x=60, y=190)
Záznam (root, font='arial 15 bold', textvariable=Výsledok, bg='biely').miesto (x=450, y=190)

Podobne definujte tri tlačidlá na zobrazenie výsledku, vynulovanie polí a zastavenie programu. Tlačidlá majú špeciálny parameter nazývaný príkaz, ktorý prevezme funkciu a vykoná ju kliknutím.

Tlačidlo (koreň, font='arial 15 bold', text='Výsledok', padx=2, bg='Svetlo sivá', príkaz=Režim).miesto (x=100, y=240)
Tlačidlo (koreň, font='arial 15 bold', text='Reset', šírka=6, command=Reset, bg='Zelená', padx=2).miesto (x=300, y=240)
Tlačidlo (koreň, font='arial 15 bold', text='stop', šírka=6, command=Exit, bg='červená', padx=2, pady=2).miesto (x=500, y=240)

The mainloop() funkcia hovorí Pythonu, aby spustil slučku udalostí Tkinter a počúval udalosti (ako sú stlačenia tlačidiel), kým nezatvoríte okno.

root.mainloop()

Kódovač/dekodér správ v akcii

Pri spustení programu program zobrazí okno, v ktorom musíte zadať správu, kľúč a režim. Pri výbere režimu kódovania pomocou kľúča 2009 sa zobrazí správa Použiť mení sa v f8KRwpvCnlLChcKjwp5Sf8KW.

Podobne, po skopírovaní zakódovanej správy a jej vložení späť na vstup na dekódovanie s rovnakou, dostanete pôvodnú správu späť.

Kybernetická bezpečnosť pomocou Pythonu

Python môžete použiť na písanie skriptov, ktoré automatizujú bezpečnostné kontroly, monitorujú siete a vyhľadávajú zraniteľné miesta. Môžete ho použiť na vytváranie robustných aplikácií, ktoré používajú autentifikáciu na zníženie pravdepodobnosti, že útočník ohrozí vaše údaje.

Odborníci na kybernetickú bezpečnosť často používajú Python na vytváranie brán firewall webových aplikácií na monitorovanie aplikácie. Môžu vykonávať analýzu detekcie hrozieb pomocou strojového učenia. S touto architektúrou je oveľa jednoduchšie vytvárať vlastné penetračné testy a overovať bezpečnostné protokoly.