Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Python Base64 modulis ir spēcīgs rīks ziņojumu kodēšanai un dekodēšanai. Varat to izmantot, lai droši nosūtītu datus internetā. Tā ir standarta procedūra vietnēm, lietotnēm un sakaru pakalpojumiem, lai izmantotu šāda veida kodējumu, lai aizsargātu sensitīvus datus no naidīgiem hakeriem.

Base64 modulim ir vairākas funkcijas, kuras varat izmantot, lai kodētu un atšifrētu ziņojumus, tādējādi nodrošinot papildu drošību jūsu datu pārsūtīšanai.

Tkinter un Base64 modulis

Tkinter ļauj izveidot darbvirsmas lietojumprogrammas. Tas piedāvā dažādus logrīkus, piemēram, pogas, etiķetes un tekstlodziņus, kas atvieglo lietojumprogrammu izstrādi bez pārāk lielas piepūles. Izmantojot Tkinter, varat izveidot neticamas GUI programmas. Tu varētu izveidot vienkāršu kalkulatoru, uzdevumu saraksta lietotne vai a mašīnrakstīšanas pārbaudes spēle. Lai instalētu Tkinter savā sistēmā, atveriet savu termināli un ierakstiet:

instagram viewer
pip instalēt tkinter

BASE64 nodrošina funkcijas bināro datu kodēšanai uz ASCII, dekodējot tos atpakaļ bināros. Tā atbalsta gan standarta, gan URL drošu kodējumu, kas padara informācijas pārsūtīšanu drošāku. Lai pārvērstu virkni par Base64 rakstzīmi, iegūstiet katras rakstzīmes ASCII vērtību un aprēķiniet tās 8 bitu bināro vērtību. Konvertējiet šo 6 bitu daļu, pārgrupējot ciparus un pārvēršot tos attiecīgajās decimālvērtībās. Visbeidzot, izmantojiet Base64 kodēšanas tabulu, lai iegūtu Base64 vērtības katrai decimāldaļai.

Kā kodēt un atšifrēt ziņojumus Python

Jūs varat atrast šī projekta pirmkodu tajā GitHub repozitorijs.

Sāciet ar abu moduļu importēšanu. Inicializējiet Tkinter gadījumu un parādiet saknes logu. Iestatiet loga nosaukumu, izmērus pikseļos un fona krāsu.

no tkinter imports *
imports bāze64

sakne = Tk()
root.geometry("750x400")
root.configure (background='ūdens')
root.title("Ziņojumu kodēšana un atšifrēšana, izmantojot Python")

Izmantojiet etiķetes logrīkus, lai parādītu noderīgu informāciju par lietojumprogrammu. Etiķete pieņem vecāku logu, kurā vēlaties to ievietot, tekstu, kas tai jāparāda, un fonta stilu, krāsu un fona krāsu. Izmantot komplekts() lai sakārtotu logrīku izkārtojuma blokā pirms ievietošanas vecāklogrīkā. StringVar ļauj vieglāk kontrolēt logrīka, piemēram, etiķetes vai ieraksta, vērtību.

Etiķete (sakne, teksts="Python ziņojumu kodētājs un dekodētājs", fonts="arial 25 treknraksts", fg='balts', bg="violets").komplekts()
Teksts = StringVar()
atslēga = StringVar()
režīms = StringVar()
Rezultāts = StringVar()

Definējiet funkciju Kodēt () kas pieņem atslēgu kodēšanai un dekodēšanai kopā ar ziņojumu. Definējiet tukšu sarakstu un atkārtojiet to līdz ziņojuma garumam. Iestatiet atslēgas indeksu kā operācijas moduli un saglabājiet tā vērtību mainīgajā key_c. Izmantot ord() lai iegūtu rakstzīmes unikoda vērtību un izmantotu chr() lai iegūtu rakstzīmi, kas apzīmē norādīto vērtību.

Pievienojiet šo vērtību sarakstam. Savienojiet katru saraksta elementu ar tukšu virkni un izmantojiet kodēt () metodi, lai atgrieztu virknes utf-8 kodētu versiju. The base64.urlsafe_b64encode() metode kodē šo ievadi un aizstāj - ar + un _ ar /.

defKodēt(atslēga, ziņojums):
enc = []

priekš i iekšā diapazons (len (ziņa)):
key_c = atslēga[i % len (atslēga)]
enc.append (chr((ord (message[i]) + ord (key_c)) % 256))

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

Definējiet funkciju Atšifrēt () kas pieņem atslēgu kodēšanai un dekodēšanai kopā ar ziņojumu. Definējiet tukšu sarakstu un atšifrējiet ziņojumu. Atkārtojiet līdz ziņojuma garumam un iestatiet darbības moduli kā indeksu un saglabājiet tā vērtību atslēgā_c. Pievienojiet Unikoda virknes ziņojuma dekodēšanas rakstzīmi, kā parādīts tālāk. Atgrieziet dekodēto virkni.

defAtšifrēt(atslēga, ziņojums):
decembris = []
ziņojums = base64.urlsafe_b64decode (ziņa).decode()

priekš i iekšā diapazons (len (ziņa)):
key_c = atslēga[i % len (atslēga)]
dec.append (chr((256 + pasūtījums (ziņojums[i]) - pasūtījums (atslēga_c)) % 256))

atgriezties"".join (dec)

Definējiet funkciju režīms () kas iegūst režīmu, ko lietotājs ievadījis ievades logrīkā, un izsauc atbilstošo funkciju atbilstoši atlasei. Ja lietotājs neievada derīgu atbildi, parādiet kļūdas ziņojumu.

defRežīms():
ja (mode.get() == "E"):
Result.set (Kodēt (key.get(), Text.get()))
elifs (mode.get() == "D"):
Result.set (Atšifrēt (key.get(), Text.get()))
cits:
Result.set("Nederīgs režīms")

Definējiet funkciju Izeja() lai nogalinātu un pārtrauktu tulka darbību fonā. Definējiet funkciju Reset(), lai notīrītu ievades lauka saturu.

defIzeja():
root.destroy()

defAtiestatīt():
Text.set("")
key.set("")
mode.set("")
Result.set("")

Definējiet iezīmju un ierakstu logrīkus ziņojumam, taustiņam, režīmam un tekstam. Norādiet vecāklogu, kurā vēlaties tos ievietot, fonta stilu, tekstu un fona krāsu. Iestatiet arī koordinātas, lai tās sakārtotu.

Etiķete (sakne, fonts ="Arial 17 treknraksts", teksts='Ziņojums', fg='melns', bg="ūdens").vieta (x=60, y=100)
Ieraksts (sakne, fonts ="Arial 15", textvariable=Teksts, bg='balts').vieta (x=450, y=100)

Etiķete (sakne, fonts ="Arial 17 treknraksts", teksts='atslēga', fg='melns', bg="ūdens").vieta (x=60, y=130)
Ieraksts (sakne, fonts ="Arial 15", teksta mainīgais=atslēga, bg='balts').vieta (x=450, y=130)

Etiķete (sakne, fonts ="Arial 17 treknraksts", teksts="Režīms (E-kods, D-dekodēšana)", fg='melns', bg="ūdens").vieta (x=60, y=160)
Ieraksts (sakne, fonts ="Arial 15", teksta mainīgais=režīms, bg='balts').vieta (x=450, y=160)

Etiķete (sakne, fonts ="Arial 17 treknraksts", teksts="Teksts", fg='melns', bg="ūdens").vieta (x=60, y=190)
Ieraksts (sakne, fonts ="Arial 15 treknraksts", textvariable=Rezultāts, bg='balts').vieta (x=450, y=190)

Līdzīgi definējiet trīs pogas, lai skatītu rezultātu, atiestatītu laukus un apturētu programmu. Pogām ir īpašs parametrs, ko sauc par komandu, kas uzņem funkciju un izpilda to, noklikšķinot.

Poga (sakne, fonts ="Arial 15 treknraksts", teksts='Rezultāts', padx=2, bg='Gaiši pelēks', komanda=Režīms).vieta (x=100, y=240)
Poga (sakne, fonts ="Arial 15 treknraksts", teksts="Atiestatīt", platums=6, command=Reset, bg='zaļa', padx=2).vieta (x=300, y=240)
Poga (sakne, fonts ="Arial 15 treknraksts", teksts="Stop", platums=6, komanda=Iziet, bg='Sarkans', padx=2, pady=2).vieta (x=500, y=240)

The mainloop() funkcija liek Python palaist Tkinter notikumu cilpu un klausīties notikumus (piemēram, pogas nospiešanu), līdz aizverat logu.

root.mainloop()

Ziņojumu kodētājs/dekodētājs darbībā

Palaižot programmu, programma parāda logu, kurā jāievada ziņojums, atslēga un režīms. Izvēloties Kodēšanas režīmu ar taustiņu 2009, tiek parādīts ziņojums Izmantot kļūst par f8KRwpvCnlLChcKjwp5Sf8KW.

Līdzīgi, kopējot kodēto ziņojumu un ielīmējot to atpakaļ ievadē dekodēšanai ar to pašu, jūs saņemat sākotnējo ziņojumu.

Kiberdrošība, izmantojot Python

Varat izmantot Python, lai rakstītu skriptus, kas automatizē drošības pārbaudes, pārrauga tīklus un skenē ievainojamības. Varat to izmantot, lai izveidotu spēcīgas lietojumprogrammas, kas izmanto autentifikāciju, lai samazinātu iespēju, ka uzbrucējs varētu apdraudēt jūsu datus.

Kiberdrošības eksperti bieži izmanto Python, lai izveidotu tīmekļa lietojumprogrammu ugunsmūrus, lai uzraudzītu lietojumprogrammu. Viņi var veikt draudu noteikšanas analīzi, izmantojot mašīnmācīšanos. Izmantojot šo arhitektūru, ir daudz vieglāk izveidot pielāgotus iespiešanās testus un apstiprināt drošības protokolus.