Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Pythoni Base64 moodul on võimas tööriist sõnumite kodeerimiseks ja dekodeerimiseks. Saate seda kasutada andmete turvaliseks saatmiseks Interneti kaudu. Seda tüüpi kodeeringut kasutavad veebisaidid, rakendused ja sideteenused tundlike andmete kaitsmiseks vaenulike häkkerite eest.

Base64 moodulil on paar funktsiooni, mida saate kasutada sõnumite kodeerimiseks ja dekodeerimiseks, lisades andmeedastusele täiendavat turvalisust.

Tkinteri ja Base64 moodul

Tkinter võimaldab teil luua töölauarakendusi. See pakub mitmesuguseid vidinaid, nagu nupud, sildid ja tekstikastid, mis muudavad rakenduste arendamise lihtsaks ilma liigse pingutuseta. Tkinteriga saate luua uskumatuid GUI-programme. Sa võid koostage lihtne kalkulaator, ülesannete loendi rakendus või a tippimiskatse mäng. Tkinteri installimiseks oma süsteemi avage terminal ja tippige:

pip install tkinter
instagram viewer

BASE64 pakub funktsioone binaarandmete kodeerimiseks ASCII-ks, dekodeerides need tagasi binaarseks. See toetab nii standardset kui ka URL-i turvalist kodeeringut, mis muudab teabe edastamise turvalisemaks. Stringi Base64 märgiks teisendamiseks hankige iga märgi ASCII väärtus ja arvutage selle 8-bitine kahendkood. Teisendage see 6-bitine tükk, rühmitades numbrid ümber ja teisendades need vastavateks kümnendväärtusteks. Lõpuks kasutage iga kümnendkoha Base64 väärtuste saamiseks Base64 kodeeringutabelit.

Kuidas Pythonis sõnumeid kodeerida ja dekodeerida

Selle projekti lähtekoodi leiate sellest GitHubi hoidla.

Alustage mõlema mooduli importimisega. Initsialiseerige Tkinteri eksemplar ja kuvage juuraken. Määrake akna pealkiri, mõõtmed pikslites ja taustavärv.

alates tkinter importida *
importida alus64

juur = Tk()
root.geometry("750x400")
root.configure (background='vesi')
root.title("Sõnumite kodeerimine ja dekodeerimine Pythoni abil")

Kasutage Sildi vidinaid, et kuvada rakenduse kohta kasulikku teavet. Silt aktsepteerib ülemakna, kuhu soovite selle paigutada, teksti, mida see peaks kuvama, ning fondi stiili, värvi ja taustavärvi. Kasutage pakk () et korraldada vidin paigutusplokis enne selle asetamist ülemvidinasse. StringVar muudab vidina (nt sildi või kirje) väärtuse juhtimise lihtsamaks.

Silt (juur, tekst=Pythoni sõnumite kodeerija ja dekooder, font="arial 25 paksus kirjas", fg='valge', bg="lilla").pack()
Tekst = StringVar()
võti = StringVar()
mode = StringVar()
Tulemus = StringVar()

Määratlege funktsioon Kodeeri () mis aktsepteerib koos sõnumiga kodeerimiseks ja dekodeerimiseks võtme. Määrake tühi loend ja korrake kuni sõnumi pikkuseni. Määrake operatsiooni mooduliks võtme indeks ja salvestage selle väärtus muutujasse key_c. Kasutage ord() märgi Unicode'i väärtuse saamiseks ja kasutage chr() määratud väärtust tähistava märgi saamiseks.

Lisage see väärtus loendisse. Ühendage loendi iga element tühja stringiga ja kasutage kodeeri () meetod stringi utf-8 kodeeringuga versiooni tagastamiseks. The base64.urlsafe_b64encode() meetod kodeerib selle sisendi ja asendab - +-ga ja _-ga /.

defKodeerida(võti, sõnum):
enc = []

jaoks i sisse ulatus (len (sõnum)):
key_c = võti[i % len (võti)]
enc.append (chr((ord (message[i]) + ord (key_c)) % 256))

tagasi base64.urlsafe_b64encode("".join (enc).encode()).decode()

Määratlege funktsioon Decode () mis aktsepteerib koos sõnumiga kodeerimiseks ja dekodeerimiseks võtme. Määrake tühi loend ja dekodeerige sõnum. Itereerige kuni sõnumi pikkuseni ja määrake operatsiooni moodul indeksiks ja salvestage selle väärtus võtmes_c. Lisage Unicode'i stringi sõnumi dekodeerimise märk, nagu allpool näidatud. Tagastab dekodeeritud stringi.

defDekodeerida(võti, sõnum):
detsember = []
sõnum = base64.urlsafe_b64decode (message).decode()

jaoks i sisse ulatus (len (sõnum)):
key_c = võti[i % len (võti)]
dec.append (chr((256 + tellimus (sõnum[i]) - korraldus (võti_c)) % 256))

tagasi"".join (dets.)

Määratlege funktsioon Mode () mis saab kasutaja sisestatud režiimi sisestusvidinasse ja kutsub välja vastava funktsiooni vastavalt valikule. Kui kasutaja ei sisesta kehtivat vastust, kuvage veateade.

defRežiim():
kui (mode.get() == 'E'):
Result.set (kodeeri (key.get(), Text.get()))
elif (mode.get() == "D"):
Result.set (Dekodeerimine (key.get(), Text.get()))
muidu:
Result.set('Vigane režiim')

Määratlege funktsioon Välju () taustal töötava tõlgi tapmiseks ja lõpetamiseks. Määrake funktsioon Reset(), et kustutada sisestusvälja sisu.

defVälju():
root.destroy()

defLähtesta():
Text.set("")
key.set("")
mode.set("")
Result.set("")

Määrake sildi ja kirje vidinad sõnumi, klahvi, režiimi ja teksti jaoks. Määrake ülemaken, kuhu soovite need paigutada, fondi stiil, tekst ja taustavärv. Määrake nende korraldamiseks ka koordinaadid.

Silt (juur, font="arial 17 paksus kirjas", tekst="Sõnum", fg='must', bg="vesi").koht (x=60, y=100)
Kirje (juur, font ="arial 15", textvariable=Tekst, bg='valge').koht (x=450, y=100)

Silt (juur, font="arial 17 paksus kirjas", tekst='Võti', fg='must', bg="vesi").koht (x=60, y=130)
Kirje (juur, font ="arial 15", tekstimuutuja=võti, bg='valge').koht (x=450, y=130)

Silt (juur, font="arial 17 paksus kirjas", tekst="Mode (E-kodeering, D-dekood)", fg='must', bg="vesi").koht (x=60, y=160)
Kirje (juur, font ="arial 15", tekstimuutuja=režiim, bg='valge').koht (x=450, y=160)

Silt (juur, font="arial 17 paksus kirjas", tekst='tekst', fg='must', bg="vesi").koht (x=60, y=190)
Kirje (juur, font ="arial 15 paksus kirjas", textvariable=Tulemus, bg='valge').koht (x=450, y=190)

Samamoodi määrake tulemuse vaatamiseks kolm nuppu, lähtestage väljad ja peatage programm. Nuppudel on spetsiaalne parameeter nimega käsk, mis võtab funktsiooni ja käivitab selle klõpsamisel.

Nupp (juur, font ="arial 15 paksus kirjas", tekst='Tulemus', padx=2, bg='Helehall', käsk=režiim).koht (x=100, y=240)
Nupp (juur, font ="arial 15 paksus kirjas", tekst='Lähtesta', laius=6, käsk=Lähtesta, bg='roheline', padx=2).koht (x=300, y=240)
Nupp (juur, font ="arial 15 paksus kirjas", tekst="Stopp", laius=6, käsk=Välju, bg="Punane", padx=2, pady=2).koht (x=500, y=240)

The mainloop() funktsioon käsib Pythonil käivitada Tkinteri sündmuste tsükli ja kuulata sündmusi (nt nupuvajutused), kuni akna sulgete.

root.mainloop()

Sõnumi kodeerija/dekooder töös

Programmi käivitamisel kuvab programm akna, kus peate sisestama sõnumi, võtme ja režiimi. Kodeerimisrežiimi valimisel klahviga 2009 kuvatakse teade Kasutage ära muutub f8KRwpvCnlLChcKjwp5Sf8KW.

Samamoodi, kui kopeerite kodeeritud sõnumi ja kleepite selle samaga dekodeerimiseks tagasi sisendisse, saate algse sõnumi tagasi.

Küberturvalisus Pythoni abil

Pythoni abil saate kirjutada skripte, mis automatiseerivad turvakontrolli, jälgivad võrke ja otsivad haavatavusi. Saate seda kasutada tugevate rakenduste loomiseks, mis kasutavad autentimist, et vähendada võimalust, et ründaja teie andmeid ohustab.

Küberturvalisuse eksperdid kasutavad Pythonit sageli rakenduse jälgimiseks veebirakenduste tulemüüride loomiseks. Nad saavad masinõppe abil teha ohtude tuvastamise analüüsi. Selle arhitektuuriga on palju lihtsam luua kohandatud läbitungimisteste ja kinnitada turvaprotokolle.