Pythonin Base64-moduuli on tehokas työkalu viestien koodaamiseen ja purkamiseen. Sen avulla voit lähettää tietoja turvallisesti Internetin kautta. Verkkosivustoille, sovelluksille ja viestintäpalveluille on tavallinen menettely käyttää tällaista koodausta arkaluonteisten tietojen suojaamiseen vihamielisiltä hakkereilta.
Base64-moduulissa on pari toimintoa, joita voit käyttää viestien koodaamiseen ja purkamiseen, mikä lisää ylimääräistä tietoturvaa tiedonsiirtoon.
Tkinter- ja Base64-moduuli
Tkinterin avulla voit luoda työpöytäsovelluksia. Se tarjoaa erilaisia widgetejä, kuten painikkeita, tarroja ja tekstiruutuja, jotka helpottavat sovellusten kehittämistä ilman liikaa vaivaa. Voit luoda uskomattomia GUI-ohjelmia Tkinterin avulla. Saatat rakentaa yksinkertainen laskin, tehtävälistasovellus tai a kirjoituskoepeli. Asenna Tkinter järjestelmään avaamalla terminaali ja kirjoittamalla:
pip asennus tkinter
BASE64 tarjoaa toimintoja binääritietojen koodaamiseksi ASCII-muotoon purkaa ne takaisin binäärimuotoon. Se tukee sekä tavallista että URL-turvallista koodausta, mikä tekee tiedonsiirrosta turvallisempaa. Jos haluat muuntaa merkkijonon Base64-merkiksi, hanki kunkin merkin ASCII-arvo ja laske sen 8-bittinen binaari. Muunna tämä 6-bittinen pala ryhmittelemällä numerot uudelleen ja muuntamalla ne uudelleen vastaaviksi desimaaliarvoiksi. Käytä lopuksi Base64-koodaustaulukkoa saadaksesi Base64-arvot jokaiselle desimaalille.
Kuinka koodata ja purkaa viestejä Pythonissa
Löydät tämän projektin lähdekoodin siitä GitHub-arkisto.
Aloita tuomalla molemmat moduulit. Alusta Tkinter-instanssi ja näytä juuriikkuna. Aseta ikkunan otsikko, mitat pikseleinä ja taustaväri.
alkaen tkinter tuonti *
tuonti base64
juuri = Tk()
root.geometry("750x400")
root.configure (tausta="vesi")
root.title("Koodaa ja purkaa viestit Pythonilla")
Käytä Label-widgetejä näyttääksesi hyödyllistä tietoa sovelluksesta. Tarra hyväksyy ylätason ikkunan, johon haluat sijoittaa sen, tekstin, jonka sen pitäisi näyttää, sekä fontin tyylin, värin ja taustavärin. Käyttää pakkaus() järjestääksesi widgetin asettelulohkoon ennen sen sijoittamista pääwidgetiin. StringVar helpottaa widgetin, kuten tarran tai merkinnän, arvon hallintaa.
Tunniste (juuri, teksti="Python Message Encoder and Dekooderi", font="arial 25 lihavoitu", fg='valkoinen', bg="violetti").pakkaus()
Teksti = StringVar()
avain = StringVar()
tila = StringVar()
Tulos = StringVar()
Määritä funktio Koodaa () joka hyväksyy avaimen koodausta ja dekoodausta varten viestin mukana. Määrittele tyhjä luettelo ja iteroi viestin pituuteen saakka. Aseta avaimen indeksi toiminnon moduuliksi ja tallenna sen arvo muuttujaan avain_c. Käyttää tilaus() saadaksesi merkin Unicode-arvon ja käytä chr() saadaksesi merkin, joka edustaa määritettyä arvoa.
Liitä tämä arvo luetteloon. Yhdistä jokainen luettelon elementti tyhjällä merkkijonolla ja käytä encode() menetelmä palauttaa merkkijonon utf-8-koodatun version. The base64.urlsafe_b64encode() menetelmä koodaa tämän syötteen ja korvaa -:n +:lla ja _: n /.
defKoodata(avain viesti):
enc = []varten i sisään alue (len (viesti)):
avain_c = avain[i % len (avain)]
enc.append (chr((ord (message[i]) + ord (avain_c)) % 256))
palata base64.urlsafe_b64encode("".join (enc).encode()).decode()
Määritä funktio Decode() joka hyväksyy avaimen koodausta ja dekoodausta varten viestin mukana. Määrittele tyhjä luettelo ja pura viesti. Iteroi viestin pituuteen asti ja aseta toiminnon moduuli indeksiksi ja tallenna sen arvo kohtaan key_c. Liitä Unicode-merkkijonoviestin dekoodauksen merkki alla olevan kuvan mukaisesti. Palauta dekoodattu merkkijono.
defDekoodaa(avain viesti):
joulukuuta = []
viesti = base64.urlsafe_b64decode (viesti).decode()varten i sisään alue (len (viesti)):
avain_c = avain[i % len (avain)]
dec.append (chr((256 + järjestys (viesti[i]) - järjestys (avain_c)) % 256))
palata"".join (dec)
Määritä funktio Mode() joka saa tilan, jonka käyttäjä on syöttänyt Entry-widgetiin ja kutsuu oikean toiminnon valinnan mukaan. Jos käyttäjä ei anna kelvollista vastausta, näytä virheilmoitus.
deftila():
jos (mode.get() == 'E'):
Result.set (Koodaa (key.get(), Text.get()))
elif (mode.get() == 'D'):
Result.set (Decode (key.get(), Text.get()))
muu:
Result.set("Virheellinen tila")
Määritä funktio Poistu() tappaa ja lopettaa taustalla käynnissä olevan tulkin. Määritä funktio Reset() tyhjentääksesi Entry-kentän sisällön.
defPoistu():
root.destroy()
defNollaa():
Text.set("")
key.set("")
mode.set("")
Result.set("")
Määritä etiketti- ja merkintäwidgetit viestille, näppäimelle, tilalle ja tekstille. Määritä pääikkuna, johon haluat sijoittaa ne, kirjasintyyli, teksti ja taustaväri. Aseta myös koordinaatit niiden järjestämiseksi.
Etiketti (juuri, font="arial 17 lihavoitu", teksti ='Viesti', fg='musta', bg="vesi").paikka (x=60, y=100)
Merkintä (juuri, font ="Arial 15", textvariable=Teksti, bg='valkoinen').paikka (x=450, y=100)Etiketti (juuri, font="arial 17 lihavoitu", teksti ="Avain", fg='musta', bg="vesi").paikka (x=60, y=130)
Merkintä (juuri, font ="Arial 15", tekstimuuttuja=avain, bg='valkoinen').paikka (x=450, y=130)Etiketti (juuri, font="arial 17 lihavoitu", teksti ="Mode (E-Encode, D-Decode)", fg='musta', bg="vesi").paikka (x=60, y=160)
Merkintä (juuri, font ="Arial 15", tekstimuuttuja=tila, bg='valkoinen').paikka (x=450, y=160)
Etiketti (juuri, font="arial 17 lihavoitu", teksti ='Teksti', fg='musta', bg="vesi").paikka (x=60, y=190)
Merkintä (juuri, font ="arial 15 lihavoitu", textvariable=Tulos, bg='valkoinen').paikka (x=450, y=190)
Samoin määritä kolme painiketta, joilla voit tarkastella tulosta, nollata kentät ja pysäyttää ohjelman. Painikkeilla on erityinen parametri nimeltä komento, joka ottaa funktion ja suorittaa sen napsautuksella.
Painike (juuri, fontti="arial 15 lihavoitu", teksti ='Tulos', padx=2, bg='Vaalean harmaa', komento=Tila).paikka (x=100, y=240)
Painike (juuri, fontti="arial 15 lihavoitu", teksti ="Palauta", leveys=6, command=Reset, bg='Vihreä', padx=2).paikka (x=300, y=240)
Painike (juuri, fontti="arial 15 lihavoitu", teksti ='Lopettaa', leveys=6, komento=Poistu, bg='Punainen', padx=2, pady=2).paikka (x=500, y=240)
The mainloop() toiminto käskee Pythonia suorittamaan Tkinterin tapahtumasilmukan ja kuuntelemaan tapahtumia (kuten painikkeen painalluksia), kunnes suljet ikkunan.
root.mainloop()
Viestienkooderi/dekooderi toiminnassa
Ohjelmaa suoritettaessa ohjelma näyttää ikkunan, johon sinun on syötettävä viesti, avain ja tila. Kun valitset Koodaustilan näppäimellä 2009, viesti Hyödyntää muuttuu f8KRwpvCnlLChcKjwp5Sf8KW.
Vastaavasti, kun kopioit koodatun viestin ja liität sen takaisin sisääntuloon dekoodaamista varten, saat alkuperäisen viestin takaisin.
Kyberturvallisuus Pythonilla
Pythonilla voit kirjoittaa skriptejä, jotka automatisoivat suojaustarkistuksia, valvovat verkkoja ja etsivät haavoittuvuuksia. Voit käyttää sitä luomaan kestäviä sovelluksia, jotka käyttävät todennusta pienentämään mahdollisuuksia, että hyökkääjä vaarantaisi tietosi.
Kyberturvallisuusasiantuntijat käyttävät usein Pythonia verkkosovellusten palomuurien rakentamiseen sovellusten valvontaan. He voivat suorittaa uhkien havaitsemisanalyysin koneoppimisen avulla. Tämän arkkitehtuurin avulla on paljon helpompaa luoda mukautettuja läpäisytestejä ja validoida suojausprotokollia.