Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Modul Base64 v Pythonu je výkonný nástroj pro kódování a dekódování zpráv. Můžete jej použít k bezpečnému odesílání dat přes internet. Pro webové stránky, aplikace a komunikační služby je standardním postupem používat tento druh kódování k ochraně citlivých dat před nepřátelskými hackery.

Modul Base64 má dvojici funkcí, které můžete použít ke kódování a dekódování zpráv, což zvyšuje bezpečnost vašich datových přenosů.

Modul Tkinter a Base64

Tkinter vám umožňuje vytvářet desktopové aplikace. Nabízí řadu widgetů, jako jsou tlačítka, štítky a textová pole, které usnadňují vývoj aplikací bez přílišného úsilí. Pomocí Tkinter můžete vytvářet neuvěřitelné GUI programy. Můžeš sestavit jednoduchou kalkulačku, aplikace se seznamem úkolů nebo a hru na test psaní. Chcete-li nainstalovat Tkinter do svého systému, otevřete terminál a zadejte:

pip nainstalovat tkinter
instagram viewer

BASE64 poskytuje funkce pro kódování binárních dat do ASCII dekódování zpět na binární. Podporuje standardní i URL bezpečné kódování, díky kterému je přenos informací bezpečnější. Chcete-li převést řetězec na znak Base64, získejte hodnotu ASCII každého znaku a vypočítejte jeho 8bitovou binární hodnotu. Převeďte tuto část 6 bitů přeskupením číslic a jejich opětovným převedením na jejich příslušné dekadické hodnoty. Nakonec použijte tabulku kódování Base64 k získání hodnot Base64 pro každé desetinné místo.

Jak kódovat a dekódovat zprávy v Pythonu

Zdrojový kód tohoto projektu najdete v něm úložiště GitHub.

Začněte importem obou modulů. Inicializujte instanci Tkinter a zobrazte kořenové okno. Nastavte nadpis, rozměry v pixelech a barvu pozadí okna.

z tkinter import *
import základ 64

kořen = Tk()
root.geometry('750x400')
root.configure (pozadí='aqua')
root.title("Kódování a dekódování zpráv pomocí Pythonu")

Pomocí widgetů Label můžete zobrazit užitečné informace o aplikaci. Štítek přijímá nadřazené okno, do kterého jej chcete umístit, text, který by měl zobrazovat, a styl písma, barvu a barvu pozadí. Použití balíček() k uspořádání widgetu do bloku rozvržení před jeho umístěním do nadřazeného widgetu. StringVar usnadňuje ovládání hodnoty widgetu, jako je štítek nebo položka.

Štítek (kořen, text='Python Message Encoder and Decoder', font='arial 25 bold', fg='bílý', bg="nachový").balíček()
Text = StringVar()
klíč = StringVar()
režim = StringVar()
Výsledek = StringVar()

Definujte funkci Zakódovat() který přijímá klíč pro kódování a dekódování spolu se zprávou. Definujte prázdný seznam a opakujte jej až do délky zprávy. Nastavte index klíče jako modul operace a uložte jeho hodnotu do proměnné key_c. Použití ord() získat hodnotu Unicode znaku a použít chr() získat znak, který představuje zadanou hodnotu.

Přidejte tuto hodnotu do seznamu. Připojte každý prvek seznamu prázdným řetězcem a použijte zakódovat() metoda, která vrátí verzi řetězce zakódovanou v utf-8. The base64.urlsafe_b64encode() metoda zakóduje tento vstup a nahradí - za + a _ za /.

defZakódovat(klíčová zpráva):
enc = []

pro i v rozsah (len (zpráva)):
key_c = klíč[i % len (klíč)]
enc.append (chr((ord (zpráva[i]) + ord (klíč_c)) % 256))

vrátit se base64.urlsafe_b64encode("".join (enc).encode()).decode()

Definujte funkci Dekódovat() který přijímá klíč pro kódování a dekódování spolu se zprávou. Definujte prázdný seznam a dekódujte zprávu. Iterujte až do délky zprávy a nastavte modul operace jako index a uložte jeho hodnotu do key_c. Přidejte znak dekódování zprávy řetězce Unicode, jak je znázorněno níže. Vraťte dekódovaný řetězec.

defDekódovat(klíčová zpráva):
prosinec = []
message = base64.urlsafe_b64decode (zpráva).decode()

pro i v rozsah (len (zpráva)):
key_c = klíč[i % len (klíč)]
dec.append (chr((256 + ord (zpráva[i]) - ord (key_c)) % 256))

vrátit se"".připojit (prosinec)

Definujte funkci režim() který získá režim zadaný uživatelem ve widgetu Entry a zavolá příslušnou funkci podle výběru. V případě, že uživatel nezadá platnou odpověď, zobrazí chybovou zprávu.

defRežim():
-li (mode.get() == 'E'):
Result.set (Encode (key.get(), Text.get()))
elif (mode.get() == 'D'):
Result.set (Dekódovat (key.get(), Text.get()))
jiný:
Result.set('Neplatný režim')

Definujte funkci Výstup() zabít a ukončit tlumočník běžící na pozadí. Definujte funkci Reset() pro vymazání obsahu pole Entry.

defVýstup():
root.destroy()

defResetovat():
Text.set("")
key.set("")
mode.set("")
Result.set("")

Definujte widgety Label a Entry pro zprávu, klíč, režim a text. Určete nadřazené okno, do kterého je chcete umístit, styl písma, text a barvu pozadí. Nastavte také souřadnice pro jejich uspořádání.

Štítek (kořen, font='arial 17 bold', text='Zpráva', fg='Černá', bg="aqua").místo (x=60, y=100)
Záznam (kořen, font='arial 15', textvariable=Text, bg='bílý').místo (x=450, y=100)

Štítek (kořen, font='arial 17 bold', text='Klíč', fg='Černá', bg="aqua").místo (x=60, y=130)
Záznam (kořen, font='arial 15', textvariable=key, bg='bílý').místo (x=450, y=130)

Štítek (kořen, font='arial 17 bold', text='Mode (E-Encode, D-Decode)', fg='Černá', bg="aqua").místo (x=60, y=160)
Záznam (kořen, font='arial 15', textvariable=režim, bg='bílý').místo (x=450, y=160)

Štítek (kořen, font='arial 17 bold', text='Text', fg='Černá', bg="aqua").místo (x=60, y=190)
Záznam (kořen, font='arial 15 bold', textvariable=Výsledek, bg='bílý').místo (x=450, y=190)

Podobně definujte tři tlačítka pro zobrazení výsledku, resetování polí a zastavení programu. Tlačítka mají speciální parametr zvaný příkaz, který převezme funkci a provede ji kliknutím.

Tlačítko (kořen, font='arial 15 bold', text='Výsledek', padx=2, bg='Světle šedá', příkaz=Režim).místo (x=100, y=240)
Tlačítko (kořen, font='arial 15 bold', text='Reset', šířka=6, command=Reset, bg='Zelená', padx=2).místo (x=300, y=240)
Tlačítko (kořen, font='arial 15 bold', text='Stop', šířka=6, command=Exit, bg='Červené', padx=2, pady=2).místo (x=500, y=240)

The mainloop() Funkce říká Pythonu, aby spustil smyčku událostí Tkinter a poslouchal události (jako je stisknutí tlačítka), dokud nezavřete okno.

root.mainloop()

Kodér/dekodér zpráv v akci

Při spuštění programu program zobrazí okno, ve kterém musíte zadat zprávu, klíč a režim. Při výběru režimu kódování pomocí klíče 2009 se zobrazí zpráva Využijte promění v f8KRwpvCnlLChcKjwp5Sf8KW.

Podobně při zkopírování zakódované zprávy a jejím vložení zpět na vstup pro dekódování se stejným získáte původní zprávu zpět.

Kybernetická bezpečnost pomocí Pythonu

Python můžete použít k psaní skriptů, které automatizují bezpečnostní kontroly, monitorují sítě a vyhledávají zranitelnosti. Můžete jej použít k vytvoření robustních aplikací, které používají ověřování ke snížení pravděpodobnosti, že útočník ohrozí vaše data.

Odborníci na kybernetickou bezpečnost často používají Python k vytváření firewallů webových aplikací pro monitorování aplikace. Mohou provádět analýzu detekce hrozeb pomocí strojového učení. S touto architekturou je mnohem snazší vytvářet vlastní penetrační testy a ověřovat bezpečnostní protokoly.