Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Modulul Python Base64 este un instrument puternic pentru codificarea și decodarea mesajelor. Îl puteți folosi pentru a trimite date în siguranță prin internet. Este o procedură standard pentru site-urile web, aplicațiile și serviciile de comunicare să folosească acest tip de codificare pentru a proteja datele sensibile de hackeri ostili.

Modulul Base64 are o pereche de funcții pe care le puteți utiliza pentru a codifica și decoda mesajele, adăugând un plus de securitate transferurilor dvs. de date.

Modulul Tkinter și Base64

Tkinter vă permite să creați aplicații desktop. Oferă o varietate de widget-uri, cum ar fi butoane, etichete și casete de text, care facilitează dezvoltarea aplicațiilor fără prea mult efort. Puteți crea programe GUI incredibile cu Tkinter. Tu ai putea construi un calculator simplu, o aplicație pentru liste de activități sau o

instagram viewer
joc de test de tastare. Pentru a instala Tkinter în sistemul dvs., deschideți terminalul și tastați:

pip install tkinter

BASE64 oferă funcții pentru codificarea datelor binare în ASCII, decodând-le înapoi în binar. Acceptă atât codarea standard, cât și codarea sigură pentru URL, ceea ce face transmisia de informații mai sigură. Pentru a converti un șir într-un caracter Base64, obțineți valoarea ASCII a fiecărui caracter și calculați binarul său de 8 biți. Convertiți această bucată de 6 biți prin regruparea cifrelor și reconvertirea lor la valorile zecimale respective. În cele din urmă, utilizați tabelul de codificare Base64 pentru a obține valorile Base64 pentru fiecare zecimală.

Cum să codificați și să decodați mesajele în Python

Puteți găsi codul sursă al acestui proiect în documentul său Depozitul GitHub.

Începeți prin a importa ambele module. Inițializați instanța Tkinter și afișați fereastra rădăcină. Setați titlul, dimensiunile în pixeli și culoarea de fundal a ferestrei.

din tkinter import *
import baza64

rădăcină = Tk()
root.geometry(„750x400”)
root.configure (background=„aqua”)
root.title(„Codificarea și decodarea mesajelor folosind Python”)

Utilizați widget-urile Label pentru a afișa informații utile despre aplicație. Eticheta acceptă o fereastră părinte în care doriți să o plasați, textul pe care ar trebui să-l afișeze și stilul fontului, culoarea și culoarea de fundal. Utilizare ambalaj() pentru a organiza widget-ul într-un bloc de aspect înainte de a-l plasa în widget-ul părinte. StringVar face mai ușor să controlați valoarea unui widget, cum ar fi o etichetă sau o intrare.

Etichetă (rădăcină, text=„Coder și decodor de mesaje Python”, font=„Arial 25 bold”, fg='alb', bg="Violet").ambalaj()
Text = StringVar()
cheie = StringVar()
mod = StringVar()
Rezultat = StringVar()

Definiți o funcție Codifica() care acceptă o cheie pentru codificare și decodare împreună cu mesajul. Definiți o listă goală și repetați până la lungimea mesajului. Setați indexul cheii ca modul al operației și stocați valoarea acestuia în variabila key_c. Utilizare ord() pentru a obține valoarea Unicode a caracterului și utilizați chr() pentru a obține caracterul care reprezintă valoarea specificată.

Adăugați această valoare la listă. Alăturați fiecare element al listei cu un șir gol și utilizați codifica() metodă de a returna o versiune codificată utf-8 a șirului. The base64.urlsafe_b64encode() metoda codifică această intrare și înlocuiește - cu + și _ cu /.

defCodifica(mesaj cheie):
enc = []

pentru i în interval (len (mesaj)):
key_c = cheie[i % len (cheie)]
enc.append (chr((ord (mesaj[i]) + ord (key_c))) % 256))

întoarcere base64.urlsafe_b64encode("".join (enc).encode()).decode()

Definiți o funcție Decodare() care acceptă o cheie pentru codificare și decodare împreună cu mesajul. Definiți o listă goală și decodați mesajul. Repetați până la lungimea mesajului și setați modulul operației ca index și stocați valoarea acestuia în key_c. Adăugați caracterul decodării mesajului șir Unicode așa cum se arată mai jos. Returnează șirul decodat.

defDecodați(mesaj cheie):
dec = []
mesaj = base64.urlsafe_b64decode (mesaj).decode()

pentru i în interval (len (mesaj)):
key_c = cheie[i % len (cheie)]
dec.append (chr((256 + ord (mesaj[i]) - ord (key_c)) % 256))

întoarcere"".join (dec)

Definiți o funcție Mod () care primește modul introdus de utilizator în widget-ul Intrare și apelează funcția corespunzătoare conform selecției. În cazul în care utilizatorul nu introduce un răspuns valid, afișați un mesaj de eroare.

defModul():
dacă (mode.get() == „E”):
Result.set (Codificare (key.get(), Text.get()))
elif (mode.get() == 'D'):
Result.set (Decodare (key.get(), Text.get()))
altfel:
Setul de rezultate(„Mod invalid”)

Definiți o funcție Ieșire() pentru a ucide și a opri interpretul care rulează în fundal. Definiți o funcție Reset() pentru a șterge conținutul câmpului de intrare.

defIeșire():
root.destroy()

defResetați():
Text.set("")
key.set("")
mode.set("")
Setul de rezultate("")

Definiți widget-urile Etichetă și Intrare pentru mesaj, cheie, mod și text. Specificați fereastra părinte în care doriți să le plasați, stilul fontului, textul și culoarea de fundal. Setați și coordonatele pentru a le organiza.

Etichetă (rădăcină, font=„Arial 17 bold”, text='Mesaj', fg='negru', bg="aqua").locul (x=60, y=100)
Intrare (rădăcină, font=„Arial 15”, textvariable=Text, bg='alb').locul (x=450, y=100)

Etichetă (rădăcină, font=„Arial 17 bold”, text='Cheie', fg='negru', bg="aqua").locul (x=60, y=130)
Intrare (rădăcină, font=„Arial 15”, textvariable=cheie, bg='alb').locul (x=450, y=130)

Etichetă (rădăcină, font=„Arial 17 bold”, text=„Mod (E-Encode, D-Decode)”, fg='negru', bg="aqua").locul (x=60, y=160)
Intrare (rădăcină, font=„Arial 15”, textvariable=mod, bg='alb').locul (x=450, y=160)

Etichetă (rădăcină, font=„Arial 17 bold”, text='Text', fg='negru', bg="aqua").locul (x=60, y=190)
Intrare (rădăcină, font=„Arial 15 bold”, textvariable=Rezultat, bg='alb').locul (x=450, y=190)

În mod similar, definiți trei butoane pentru a vizualiza rezultatul, resetați câmpurile și opriți programul. Butoanele au un parametru special numit comandă care preia o funcție și o execută la clic.

Buton (rădăcină, font=„Arial 15 bold”, text='Rezultat', padx=2, bg='Gri deschis', comanda=Mod).place (x=100, y=240)
Buton (rădăcină, font=„Arial 15 bold”, text=„Resetare”, latime=6, comandă=Resetare, bg='Verde', padx=2).locul (x=300, y=240)
Buton (rădăcină, font=„Arial 15 bold”, text='Stop', latime=6, comandă=Ieșire, bg='Roșu', padx=2, pady=2).locul (x=500, y=240)

The mainloop() funcția îi spune lui Python să ruleze bucla de evenimente Tkinter și să asculte evenimente (cum ar fi apăsările de butoane) până când închideți fereastra.

root.mainloop()

Codificatorul/Decodorul de mesaje în acțiune

La rularea programului, programul afișează o fereastră în care trebuie să introduceți un mesaj, o cheie și un mod. La selectarea modului de codificare cu o cheie de 2009, mesajul A se folosi de se transformă în f8KRwpvCnlLChcKjwp5Sf8KW.

În mod similar, la copierea mesajului codificat și lipirea lui înapoi la intrare pentru decodare cu același, primiți mesajul original înapoi.

Securitate cibernetică folosind Python

Puteți folosi Python pentru a scrie scripturi care automatizează verificările de securitate, monitorizează rețelele și scanează vulnerabilități. Îl puteți folosi pentru a crea aplicații robuste care utilizează autentificarea pentru a reduce șansele ca un atacator să vă compromită datele.

Experții în securitate cibernetică folosesc adesea Python pentru a construi firewall-uri pentru aplicații web pentru a monitoriza o aplicație. Ei pot efectua analize de detectare a amenințărilor folosind Machine Learning. Cu această arhitectură, este mult mai ușor să creați teste de penetrare personalizate și să validați protocoalele de securitate.