Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Python Base64 modulis yra galingas pranešimų kodavimo ir iškodavimo įrankis. Jį galite naudoti norėdami saugiai siųsti duomenis internetu. Tai standartinė svetainė, programėlės ir komunikacijos paslaugų procedūra, kuri naudoja tokio tipo kodavimą, kad apsaugotų neskelbtinus duomenis nuo priešiškų įsilaužėlių.

Modulis „Base64“ turi keletą funkcijų, kurias galite naudoti žinutėms koduoti ir iššifruoti, o tai suteikia papildomos duomenų perdavimo saugumo.

„Tkinter“ ir „Base64“ modulis

„Tkinter“ leidžia kurti darbalaukio programas. Ji siūlo įvairius valdiklius, pvz., mygtukus, etiketes ir teksto laukelius, kurie leidžia lengvai kurti programas be didelių pastangų. Naudodami „Tkinter“ galite sukurti neįtikėtinas GUI programas. Tu galėtum sukurti paprastą skaičiuotuvą, užduočių sąrašo programa arba a spausdinimo bandomasis žaidimas. Norėdami įdiegti „Tkinter“ savo sistemoje, atidarykite terminalą ir įveskite:

instagram viewer
pip įdiegti tkinter

BASE64 suteikia funkcijas, skirtas koduoti dvejetainius duomenis į ASCII, iššifruojant juos atgal į dvejetainius. Jis palaiko ir standartinį, ir URL saugų kodavimą, todėl informacijos perdavimas tampa saugesnis. Norėdami konvertuoti eilutę į Base64 simbolį, gaukite kiekvieno simbolio ASCII reikšmę ir apskaičiuokite jo 8 bitų dvejetainį elementą. Konvertuokite šią 6 bitų dalį iš naujo sugrupuodami skaitmenis ir konvertuodami juos į atitinkamas dešimtaines reikšmes. Galiausiai naudokite „Base64“ kodavimo lentelę, kad gautumėte „Base64“ reikšmes kiekvienam kableliui.

Kaip užkoduoti ir iššifruoti pranešimus Python

Šio projekto šaltinio kodą galite rasti jame GitHub saugykla.

Pradėkite importuodami abu modulius. Inicijuokite Tkinter egzempliorių ir parodykite šakninį langą. Nustatykite lango pavadinimą, matmenis pikseliais ir fono spalvą.

 tkinteris importuoti *
importuoti bazė64

šaknis = Tk()
root.geometry(„750 x 400“)
root.configure (background="vanduo")
root.title(„Koduoti ir iššifruoti pranešimus naudojant Python“)

Naudokite etikečių valdiklius, kad būtų rodoma naudinga informacija apie programą. Etiketė priima pagrindinį langą, kuriame norite jį įdėti, tekstą, kuris turėtų būti rodomas, ir šrifto stilių, spalvą ir fono spalvą. Naudokite paketas() tvarkyti valdiklį išdėstymo bloke prieš įdėdami jį į pagrindinį valdiklį. StringVar leidžia lengviau valdyti valdiklio, pvz., etiketės ar įrašo, vertę.

Etiketė (šaknis, tekstas=„Python Message Encoder and Decoder“, šriftas=„Arial 25 bold“, fg='balta', bg="violetinė").paketas()
Tekstas = StringVar()
raktas = StringVar()
režimas = StringVar()
Rezultatas = StringVar()

Apibrėžkite funkciją Koduoti () kuris priima kodavimo ir dekodavimo raktą kartu su pranešimu. Apibrėžkite tuščią sąrašą ir kartokite iki pranešimo ilgio. Nustatykite rakto indeksą kaip operacijos modulį ir išsaugokite jo reikšmę kintamajame key_c. Naudokite ord () norėdami gauti simbolio Unicode reikšmę ir naudoti chr() norėdami gauti simbolį, kuris reiškia nurodytą reikšmę.

Pridėkite šią reikšmę prie sąrašo. Sujunkite kiekvieną sąrašo elementą tuščia eilute ir naudokite koduoti () metodas grąžinti utf-8 koduotą eilutės versiją. The base64.urlsafe_b64encode() metodas užkoduoja šią įvestį ir pakeičia - su + ir _ su /.

defUžkoduoti(raktas, žinutė):
enc = []

dėl i in diapazonas (len (pranešimas)):
key_c = raktas[i % len (raktas)]
enc.append (chr((ord (message[i]) + ord (key_c)) % 256))

grąžinti base64.urlsafe_b64encode("".join (enc).encode()).decode()

Apibrėžkite funkciją Dekoduoti () kuris priima kodavimo ir dekodavimo raktą kartu su pranešimu. Apibrėžkite tuščią sąrašą ir iššifruokite pranešimą. Pakartokite iki pranešimo ilgio ir nustatykite operacijos modulį kaip indeksą ir išsaugokite jo reikšmę rakte_c. Pridėkite Unicode eilutės pranešimo dekodavimo simbolį, kaip parodyta toliau. Grąžinkite iššifruotą eilutę.

defDekoduoti(raktas, žinutė):
gruodis = []
pranešimas = base64.urlsafe_b64decode (pranešimas).decode()

dėl i in diapazonas (len (pranešimas)):
key_c = raktas[i % len (raktas)]
dec.append (chr((256 + užsakymas (pranešimas[i]) - užsakymas (key_c)) % 256))

grąžinti"".join (gruodis)

Apibrėžkite funkciją režimas () kuris gauna režimą, kurį vartotojas įveda į įvesties valdiklį, ir iškviečia atitinkamą funkciją pagal pasirinkimą. Jei vartotojas neįveda tinkamo atsakymo, parodykite klaidos pranešimą.

defRežimas():
jeigu (mode.get() == "E"):
Result.set (Koduoti (key.get(), Text.get()))
elifas (mode.get() == "D"):
Result.set (Dekoduoti (key.get(), Text.get()))
Kitas:
Result.set(„Netinkamas režimas“)

Apibrėžkite funkciją Išeiti () nužudyti ir nutraukti fone veikiantį vertėją. Apibrėžkite funkciją Reset(), kad išvalytumėte lauko Įvesties turinį.

defIšeiti():
root.destroy()

defNustatyti iš naujo():
Text.set("")
key.set("")
mode.set("")
Result.set("")

Apibrėžkite pranešimo, rakto, režimo ir teksto etiketės ir įrašo valdiklius. Nurodykite pagrindinį langą, kuriame norite juos įdėti, šrifto stilių, tekstą ir fono spalvą. Taip pat nustatykite koordinates, kad jas tvarkytumėte.

Etiketė (šaknis, šriftas=„Arial 17 bold“, tekstas="Pranešimas", fg='juoda', bg="vanduo").vieta (x=60, y=100)
Įrašas (šaknis, šriftas ="Arial 15", textvariable=Tekstas, bg='balta').vieta (x=450, y=100)

Etiketė (šaknis, šriftas=„Arial 17 bold“, tekstas='Raktas', fg='juoda', bg="vanduo").vieta (x=60, y=130)
Įrašas (šaknis, šriftas ="Arial 15", teksto kintamasis=raktas, bg='balta').vieta (x=450, y=130)

Etiketė (šaknis, šriftas=„Arial 17 bold“, tekstas=„Režimas (E-kodavimas, D-dekodavimas)“, fg='juoda', bg="vanduo").vieta (x=60, y=160)
Įrašas (šaknis, šriftas ="Arial 15", teksto kintamasis=režimas, bg='balta').vieta (x=450, y=160)

Etiketė (šaknis, šriftas=„Arial 17 bold“, tekstas='tekstas', fg='juoda', bg="vanduo").vieta (x=60, y=190)
Įrašas (šaknis, šriftas =„Arial 15 bold“, textvariable=Rezultatas, bg='balta').vieta (x=450, y=190)

Panašiai apibrėžkite tris mygtukus, kad peržiūrėtumėte rezultatą, iš naujo nustatytumėte laukus ir sustabdytumėte programą. Mygtukai turi specialų parametrą, vadinamą komanda, kuri paima funkciją ir vykdo ją spustelėjus.

Mygtukas (šaknis, šriftas =„Arial 15 bold“, tekstas='Rezultatas', padx=2, bg='Šviesiai pilka', komanda=Režimas).vieta (x=100, y=240)
Mygtukas (šaknis, šriftas =„Arial 15 bold“, tekstas=„Atstatyti“, plotis=6, command=Reset, bg='Žalias', padx=2).vieta (x=300, y=240)
Mygtukas (šaknis, šriftas =„Arial 15 bold“, tekstas='Sustabdyti', plotis=6, komanda=Išeiti, bg='raudona', padx=2, pady=2).vieta (x=500, y=240)

The mainloop () funkcija liepia Python paleisti Tkinter įvykių kilpą ir klausytis įvykių (pvz., mygtukų paspaudimų), kol uždarysite langą.

root.mainloop()

Veikia pranešimų koduotuvas / dekoderis

Paleidus programą, programa rodo langą, kuriame turite įvesti pranešimą, klavišą ir režimą. Pasirinkus kodavimo režimą 2009 m. klavišu, pasirodo pranešimas Pasinaudoti Pasiverčia į f8KRwpvCnlLChcKjwp5Sf8KW.

Panašiai, nukopijavę užkoduotą pranešimą ir įklijuodami jį atgal į įvestį, skirtą dekoduoti, gausite originalų pranešimą.

Kibernetinis saugumas naudojant Python

Galite naudoti Python rašyti scenarijus, kurie automatizuoja saugos patikras, stebi tinklus ir nuskaito pažeidžiamumą. Galite naudoti jį kurdami patikimas programas, kurios naudoja autentifikavimą, kad sumažintų tikimybę, kad užpuolikas pakenks jūsų duomenims.

Kibernetinio saugumo ekspertai dažnai naudoja Python, kad sukurtų žiniatinklio programų užkardas, kad galėtų stebėti programą. Jie gali atlikti grėsmių aptikimo analizę naudodami mašininį mokymąsi. Naudojant šią architektūrą, daug lengviau kurti pasirinktinius įsiskverbimo testus ir patvirtinti saugos protokolus.