成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用 Python 和 Base64 對消息進行編碼和解碼

開發
這個 GUI 應用程序既簡單又方便,構建它將幫助您練習 Python 技能。

Python 的 Base64 模塊是一個強大的消息編碼和解碼工具。您可以使用它通過 Internet 安全地發送數據。使用這種編碼來保護敏感數據免受惡意黑客攻擊是網站、應用程序和通信服務的標準程序。

Base64 模塊有一對函數,可用于對消息進行編碼和解碼,從而為數據傳輸增加一些額外的安全性。

Tkinter 和 Base64 模塊

Tkinter 允許您創建桌面應用程序。它提供了各種小部件,例如按鈕、標簽和文本框,可以輕松開發應用程序而無需付出太多努力。您可以使用 Tkinter 創建令人難以置信的 GUI 程序。您可以構建一個簡單的計算器、一個待辦事項列表應用程序或一個打字測試游戲。要將 Tkinter 安裝到您的系統中,請打開您的終端并輸入:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
sudo apt install python3-tk

BASE64 提供了將二進制數據編碼為 ASCII 并將其解碼回二進制的功能。它支持標準和 URL 安全編碼,使信息傳輸更加安全。要將字符串轉換為 Base64 字符,請獲取每個字符的 ASCII 值并計算其 8 位二進制。通過重新分組數字并將它們重新轉換為各自的十進制值來轉換這塊 6 位。最后使用Base64編碼表,得到每個小數的Base64值。

如何在 Python 中編碼和解碼消息

首先導入這兩個模塊。初始化 Tkinter 實例并顯示根窗口。設置窗口的標題、尺寸(以像素為單位)和背景顏色。

from tkinter import *
import base64

root = Tk()
root.geometry('800x500')
root.configure(background='aqua')
root.title("使用 Python 對消息進行編碼和解碼")

使用標簽小部件顯示有關應用程序的有用信息。該標簽接受您要放置它的父窗口、它應該顯示的文本以及字體樣式、顏色和背景顏色。在將小部件放入父小部件之前,使用 pack() 在布局塊中組織小部件。StringVar 可以更輕松地控制標簽或條目等小部件的值。

Label(root, text='Python消息編碼器和解碼器', font='arial 25 bold', fg='white', bg="purple").pack()
Text = StringVar()
key = StringVar()
mode = StringVar()
Result = StringVar()

定義一個函數 Encode(),它接受一個用于編碼和解碼的密鑰以及消息。定義一個空列表并迭代到消息的長度。將 key 的索引設置為操作的模數,并將其值存儲在變量 key_c 中。使用 ord() 獲取字符的 Unicode 值,使用 chr() 獲取表示指定值的字符。

將此值附加到列表中。使用空字符串連接列表的每個元素,并使用 encode() 方法返回字符串的 utf-8 編碼版本。base64.urlsafe_b64encode ()方法對此輸入進行編碼,并將 – 替換為 + 并將 _ 替換為 /。

def Encode(key, message):
????enc = []

????for i in range(len(message)):
????????key_c = key[i % len(key)]
????????enc.append(chr((ord(message[i]) + ord(key_c)) % 256))

????return base64.urlsafe_b64encode("".join(enc).encode()).decode()

定義一個函數Decode(),它接受用于編碼和解碼的密鑰以及消息。定義一個空列表并解碼消息。迭代到消息的長度并將操作的模數設置為索引并將其值存儲在key_c中。附加 Unicode 字符串消息解碼的字符,如下所示。返回解碼后的字符串。

定義一個函數Mode(),它獲取用戶在 Entry 小部件中輸入的模式,并根據選擇調用適當的函數。如果用戶未輸入有效響應,則顯示一條錯誤消息:

def Mode():
????if (mode.get() == 'E'):
????????Result.set(Encode(key.get(), Text.get()))
????elif (mode.get() == 'D'):
????????Result.set(Decode(key.get(), Text.get()))
????else:
????????Result.set('Invalid Mode')

定義一個函數Exit()來殺死和終止在后臺運行的解釋器。定義一個函數 Reset() 來清除 Entry 字段的內容:

def Exit():
????root.destroy()

def Reset():
????Text.set("")
????key.set("")
????mode.set("")
????Result.set("")

為消息、密鑰、模式和文本定義標簽和條目小部件。指定要放置它們的父窗口、字體樣式、文本和背景顏色。還要設置坐標來組織它們。

Label(root, font='arial 17 bold', text='消息', fg='black', bg="aqua").place(x=60, y=100)
Entry(root, font='arial 15', textvariable=Text, bg='white').place(x=450, y=100)

Label(root, font='arial 17 bold', text='密鑰', fg='black', bg="aqua").place(x=60, y=130)
Entry(root, font='arial 15', textvariable=key, bg='white').place(x=450, y=130)

Label(root, font='arial 17 bold', text='模式(E-Encode, D-Decode)', fg='black', bg="aqua").place(x=60, y=160)
Entry(root, font='arial 15', textvariable=mode, bg='white').place(x=450, y=160)

Label(root, font='arial 17 bold', text='文本', fg='black', bg="aqua").place(x=60, y=190)
Entry(root, font='arial 15 bold', textvariable=Result, bg='white').place(x=450, y=190)

Label(root, text='Linux迷 www.linuxmi.com', font='arial 25 bold', fg='white', bg="purple").pack()

同樣,定義三個按鈕來查看結果、重置字段和停止程序。這些按鈕有一個名為 command 的特殊參數,它接受一個函數并在單擊時執行它:

Button(root, font='arial 15 bold', text='結果', padx=2, bg='Light Gray', command=Mode).place(x=100, y=240)
Button(root, font='arial 15 bold', text='重置', width=6, command=Reset, bg='Green', padx=2).place(x=300, y=240)
Button(root, font='arial 15 bold', text='停止', width=6, command=Exit, bg='Red', padx=2, pady=2).place(x=500, y=240)

mainloop ()函數告訴 Python 運行 Tkinter 事件循環并監聽事件(例如按鈕按下),直到您關閉窗口:

root.mainloop()

消息編碼器/解碼器的實際應用

在運行程序時,程序會顯示一個窗口,您必須在其中輸入消息、密鑰和模式。在使用 2009 密鑰選擇編碼模式時,消息 www.linuxmi.com 變為 wqnCp8KpYcKewpnCoMKowqrCncKbYcKVwp_Cnw==。

類似地,在復制編碼消息并將其粘貼回輸入以進行解碼時,您會得到原始消息。

使用 Python 檢查網絡安全

您可以使用 Python 編寫腳本來自動執行安全檢查、監控網絡和掃描漏洞。您可以使用它來創建強大的應用程序,這些應用程序使用身份驗證來降低攻擊者破壞您的數據的機會。

網絡安全專家經常使用 Python 構建 Web 應用程序防火墻來監控應用程序。他們可以使用機器學習執行威脅檢測分析。使用此架構,創建自定義滲透測試和驗證安全協議變得更加容易。

責任編輯:趙寧寧 來源: Linux迷
相關推薦

2014-02-20 10:28:28

JavaScriptBase64

2022-10-29 19:58:09

Base64Bashshell

2024-07-31 10:22:49

Go語言編碼

2021-09-07 08:59:09

編碼Base64解碼

2024-07-11 08:42:57

2025-02-11 00:00:10

Base64編碼二進制

2024-02-28 23:07:42

GolangBase64編碼

2021-03-05 09:10:19

base64編碼

2023-11-07 08:35:26

2022-06-06 08:31:05

Base64編碼Base58

2019-07-23 08:55:46

Base64編碼底層

2016-12-13 13:50:06

JAVA轉換Base64

2023-02-15 08:10:06

2010-03-03 16:14:05

Python base

2021-02-05 05:26:33

字節ASCII控制

2019-08-09 11:40:38

JavaScriptCSS技術

2013-01-24 09:29:16

2021-11-25 08:11:47

JS網站信息

2021-08-26 05:27:08

Base64 字節流算法

2016-10-13 13:12:43

微信小程序javascript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人久久久久 | 人人人人干 | 日韩欧美久久精品 | 国产日韩一区二区三免费 | 一区二区在线视频 | www国产精| 黑人精品xxx一区一二区 | 日韩国产欧美在线观看 | www.日本精品| 99国产精品99久久久久久 | 国产一级片网站 | 国产综合av| 日韩视频在线观看一区二区 | 国产成人一区二 | 国产精品一区二区免费 | 97超碰免费 | 天天天天操 | 亚洲成人第一页 | 欧美日韩亚洲一区二区 | 国产精品久久久久久久久污网站 | 韩日在线视频 | 韩国精品在线观看 | 日本一区二区高清视频 | 久久久久国产精品一区二区 | 亚洲va欧美va天堂v国产综合 | 免费精品| 麻豆av一区二区三区久久 | 精品国产乱码久久久久久老虎 | 亚洲第1页 | 成人久久网 | 国产一级精品毛片 | 自拍偷拍一区二区三区 | 欧美一区视频 | 91精品国产乱码久久久久久 | 国产成人精品午夜视频免费 | 国产视频观看 | 欧美另类视频 | 日韩在线精品视频 | 精品精品视频 | 一本久久a久久精品亚洲 | 精品国产一区三区 |