服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

如何使用 Python 和 Base64对消息进行编码和解码

日期: 来源:Linux公社收集编辑:聆听世界的鱼

点击上方蓝字 ● 关注Linux公社     

这个 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迷 公众号。


后台回复 pym


感谢 Linux迷 www.linuxmi.com 的精彩分享。
OK,这就是本文的内容。如果还有什么疑问,请在下面的评论区告诉我们。

需要 Linux 精美艺术壁纸的朋友请加小编微信linuxgs口令壁纸)。
来自:Linux迷
链接:https://www.linuxmi.com/python-base64-encode-decode.html
关注我们

长按或扫描下面二维码关注 Linux公社



关注 Linux公社,添加“ 星标 

每天 获取 技术干货,让我们一起成长

合作联系:root@linuxidc.net

相关阅读

  • 西方品牌撤离俄罗斯?“呃……”

  • 据路透社莫斯科2月22日报道,装载着可口可乐的卡车鱼贯通过边境进入俄罗斯,游客满载着ZARA的最新设计从国外归来,本地的网上商城抢购宜家的库存家具。西方品牌或许已经离开俄罗
  • “毒列车”后遗症?有人竟变成“米奇音”

  • 据《纽约邮报》2月25日报道,在俄亥俄州东巴勒斯坦镇“毒列车”事件后,不断有居民表示开始出现不明原因呕吐、起疹子、支气管炎等症状。近日,东巴勒斯坦镇居民韦德·洛维特称,他
  • “中国可能比美国拥有更多选择”

  • 澳大利亚“战略家”博客2月27日发表题为《中国比美国更有条件在经济分化中生存下去吗?》的文章,作者是澳大利亚战略政策研究所高级研究员戴维·尤伦。全文摘编如下:美国严厉批
  • “魅力攻势”!这些中国人正密集访问欧美

  • 打开手机听报纸,天下风云掌中看。《参考消息》带您换个角度看世界。今日出版的《参考消息》数字报,小编为您梳理了五大看点。1.“魅力攻势”!这些中国人正密集访问欧美英国《金
  • 风向转变?布林肯此行意在“挖墙脚”

  • 《参考消息》数字报订户的专属福利,来了。美国《华尔街日报》说,美国国务卿布林肯今天将对中亚地区进行访问,这是他的首次中亚之行。这家美媒还说,长期以来,美国一直难以在中亚地
  • 跟偶像特朗普学,他要卖“周边”

  • 据路透社圣保罗2月27日报道,去年连任失败后在美国“自我流亡”的巴西前总统雅伊尔·博索纳罗有了一个最新计划:卖“周边”。报道称,木制砧板、啤酒杯、咖啡杯,在他最近开张的网
  • 安全会议上,普京“划重点”

  • 据俄罗斯卫星社2月28日报道,俄罗斯总统普京在俄联邦安全局局务会议上表示,在对乌特别军事行动中为俄武装力量和俄国家近卫军提供协助是俄联邦安全局的工作重点。报道称,普京在
  • 点击,获取调仓提醒

  • 您订阅了投顾产品,想及时获取调仓提醒?您想及时了解持仓股的预警公告?来光大证券微服务,绑定【消息中心】,即可享受组合调仓提醒、实时成交回报、重要持仓股公告等16项账户陪伴服

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 应该没什么美食号教过你这种调味技巧。

  • 一个小观察,很多厨房新手做饭都有一个共同困扰:跟着网上菜谱学做菜,几乎每次都要买很多调味料,做两次就要闲置;但如果是自己发挥,永远都是酱油蚝油老抽三部曲,炒什么都是一个味道,怎
  • 河南人爱说的“中”,背后竟有这样的渊源

  • 据统计普通人一天要说3500个常用字日常生活中不管干什么都得“吐字儿”如果要说河南方言一天当中最常说的一定是——中说起“中”这个汉字要从安阳殷墟出土的甲骨说起了“
  • 成年人最爱的微醺快乐水,2支。

  • 莫斯卡托(Moscato),应该是所有葡萄酒里,最让人砰然心动的品种了。嫩嘟嘟的水蜜桃、荔枝玫瑰香,奔放又活泼,即便平时不怎么爱喝酒的人,一闻到都会忍不住心情明快起来。正是因为它非
  • 黄河安澜·视频|定西:洋芋花开奏响黄河之歌

  • 定西是黄河最大支流渭河的发源地,也是黄河上游最大支流洮河以及重要支流关川河的水源涵养区、补给区。定西通过兴修梯田、固土保塬、实施重点林业生态工程等方式推进水土流失
  • 如何快速提高表达能力,摆脱嘴笨带来的困扰?

  • 公众号规则是部分推送,您只有设了星标⭐️,才能及时接收最新推送每周二原创:职场学习类干货60秒表达力培训法1/5说不清楚事情是怎么回事?同事问我一件事:他上三年级的儿子看了那么