如何使用 Python 和 Base64 對(duì)消息進(jìn)行編碼和解碼
Python 的 Base64 模塊是一個(gè)強(qiáng)大的消息編碼和解碼工具。您可以使用它通過(guò) Internet 安全地發(fā)送數(shù)據(jù)。使用這種編碼來(lái)保護(hù)敏感數(shù)據(jù)免受惡意黑客攻擊是網(wǎng)站、應(yīng)用程序和通信服務(wù)的標(biāo)準(zhǔn)程序。
Base64 模塊有一對(duì)函數(shù),可用于對(duì)消息進(jìn)行編碼和解碼,從而為數(shù)據(jù)傳輸增加一些額外的安全性。
Tkinter 和 Base64 模塊
Tkinter 允許您創(chuàng)建桌面應(yīng)用程序。它提供了各種小部件,例如按鈕、標(biāo)簽和文本框,可以輕松開發(fā)應(yīng)用程序而無(wú)需付出太多努力。您可以使用 Tkinter 創(chuàng)建令人難以置信的 GUI 程序。您可以構(gòu)建一個(gè)簡(jiǎn)單的計(jì)算器、一個(gè)待辦事項(xiàng)列表應(yīng)用程序或一個(gè)打字測(cè)試游戲。要將 Tkinter 安裝到您的系統(tǒng)中,請(qǐng)打開您的終端并輸入:
BASE64 提供了將二進(jìn)制數(shù)據(jù)編碼為 ASCII 并將其解碼回二進(jìn)制的功能。它支持標(biāo)準(zhǔn)和 URL 安全編碼,使信息傳輸更加安全。要將字符串轉(zhuǎn)換為 Base64 字符,請(qǐng)獲取每個(gè)字符的 ASCII 值并計(jì)算其 8 位二進(jìn)制。通過(guò)重新分組數(shù)字并將它們重新轉(zhuǎn)換為各自的十進(jìn)制值來(lái)轉(zhuǎn)換這塊 6 位。最后使用Base64編碼表,得到每個(gè)小數(shù)的Base64值。
如何在 Python 中編碼和解碼消息
首先導(dǎo)入這兩個(gè)模塊。初始化 Tkinter 實(shí)例并顯示根窗口。設(shè)置窗口的標(biāo)題、尺寸(以像素為單位)和背景顏色。
使用標(biāo)簽小部件顯示有關(guān)應(yīng)用程序的有用信息。該標(biāo)簽接受您要放置它的父窗口、它應(yīng)該顯示的文本以及字體樣式、顏色和背景顏色。在將小部件放入父小部件之前,使用 pack() 在布局塊中組織小部件。StringVar 可以更輕松地控制標(biāo)簽或條目等小部件的值。
定義一個(gè)函數(shù) Encode(),它接受一個(gè)用于編碼和解碼的密鑰以及消息。定義一個(gè)空列表并迭代到消息的長(zhǎng)度。將 key 的索引設(shè)置為操作的模數(shù),并將其值存儲(chǔ)在變量 key_c 中。使用 ord() 獲取字符的 Unicode 值,使用 chr() 獲取表示指定值的字符。
將此值附加到列表中。使用空字符串連接列表的每個(gè)元素,并使用 encode() 方法返回字符串的 utf-8 編碼版本。base64.urlsafe_b64encode ()方法對(duì)此輸入進(jìn)行編碼,并將 – 替換為 + 并將 _ 替換為 /。
定義一個(gè)函數(shù)Decode(),它接受用于編碼和解碼的密鑰以及消息。定義一個(gè)空列表并解碼消息。迭代到消息的長(zhǎng)度并將操作的模數(shù)設(shè)置為索引并將其值存儲(chǔ)在key_c中。附加 Unicode 字符串消息解碼的字符,如下所示。返回解碼后的字符串。
定義一個(gè)函數(shù)Mode(),它獲取用戶在 Entry 小部件中輸入的模式,并根據(jù)選擇調(diào)用適當(dāng)?shù)暮瘮?shù)。如果用戶未輸入有效響應(yīng),則顯示一條錯(cuò)誤消息:
定義一個(gè)函數(shù)Exit()來(lái)殺死和終止在后臺(tái)運(yùn)行的解釋器。定義一個(gè)函數(shù) Reset() 來(lái)清除 Entry 字段的內(nèi)容:
為消息、密鑰、模式和文本定義標(biāo)簽和條目小部件。指定要放置它們的父窗口、字體樣式、文本和背景顏色。還要設(shè)置坐標(biāo)來(lái)組織它們。
同樣,定義三個(gè)按鈕來(lái)查看結(jié)果、重置字段和停止程序。這些按鈕有一個(gè)名為 command 的特殊參數(shù),它接受一個(gè)函數(shù)并在單擊時(shí)執(zhí)行它:
mainloop ()函數(shù)告訴 Python 運(yùn)行 Tkinter 事件循環(huán)并監(jiān)聽事件(例如按鈕按下),直到您關(guān)閉窗口:
消息編碼器/解碼器的實(shí)際應(yīng)用
在運(yùn)行程序時(shí),程序會(huì)顯示一個(gè)窗口,您必須在其中輸入消息、密鑰和模式。在使用 2009 密鑰選擇編碼模式時(shí),消息 www.linuxmi.com 變?yōu)?nbsp;wqnCp8KpYcKewpnCoMKowqrCncKbYcKVwp_Cnw==。
類似地,在復(fù)制編碼消息并將其粘貼回輸入以進(jìn)行解碼時(shí),您會(huì)得到原始消息。
使用 Python 檢查網(wǎng)絡(luò)安全
您可以使用 Python 編寫腳本來(lái)自動(dòng)執(zhí)行安全檢查、監(jiān)控網(wǎng)絡(luò)和掃描漏洞。您可以使用它來(lái)創(chuàng)建強(qiáng)大的應(yīng)用程序,這些應(yīng)用程序使用身份驗(yàn)證來(lái)降低攻擊者破壞您的數(shù)據(jù)的機(jī)會(huì)。
網(wǎng)絡(luò)安全專家經(jīng)常使用 Python 構(gòu)建 Web 應(yīng)用程序防火墻來(lái)監(jiān)控應(yīng)用程序。他們可以使用機(jī)器學(xué)習(xí)執(zhí)行威脅檢測(cè)分析。使用此架構(gòu),創(chuàng)建自定義滲透測(cè)試和驗(yàn)證安全協(xié)議變得更加容易。