使用Tkinter对信息进行编码-解密

使用Tkinter对信息进行编码-解密

加密是将文本或信息转换为无法识别的形式的方法,而解密确实是从加密后的信息中获得原始形式的方法。

信息加密和解密的方法包括首先将原始文本变为密码文本,这是一个随机的、无意义的文本。这种方法被称为编码。解密是指从密码文本中恢复原始文本的过程。加密-解密过程是这一程序的又一名称。

这篇文章的目标是使用一个单一的密钥来加密和解密信息。base64库和Tkinter工具包将被用来建立这个项目。

用户必须在本文中输入要加密或解码的文本。编码和解码过程必须由用户在特定的模式下选择。同一消息的编码和解码操作必须使用相同的密钥进行。

我们将利用Python、Tkinter和base64库的基础知识来开发这个项目。

一个将二进制信息编码为ASCII字符,然后将这些ASCII经典字符解码为二进制数据的函数由标准GUI Python库Tkinter的base64模块提供。

在命令提示符下,我们使用 pip install 命令来安装这个库。

这些是开发消息编码和解码的Python代码的步骤。

  • 添加一个模块
  • 建立一个显示窗口
  • 解释功能
  • 定义按钮和标签。

所以,这就是这个Python项目所要做的。让我们开始吧。

开发消息编码-解码项目步骤

信息开发编码-解码的步骤

第1步 .使用tkinter import导入库

from tkinter import *
import base64

导入base64的tkinter库是第1步

第2步 . 使Tk()根成为初始窗口根。

geometry('550x350')
root. resizable(0,0)
root. title("DataFlair - Message Encode and Decode DataFlair - Message Encode and Decode")
  • Tk()初始化了tkinter,结果创建了一个窗口。
  • 窗口的高度和宽度是用
  • geometry()来调整(0,0) 设置窗口的固定尺寸
  • title()设置窗口的标题
Label(root, text ='ENCODE & DECODE', font = 'arial 22 bold').pack()
Label(root, text ='DataFlair', font = 'arial 22 bold').pack(side =BOTTOM)

使用Label()部件显示一行或多行用户无法编辑的文本。

该窗口被称为根。

我们在标签上显示文本。

用来书写文本的字体。

组建一个结构化的窗口部件块。

第3步.定义变量

Mess = StringVar()
private_key = StringVar()
Trav = StringVar()
Ans = StringVar()

解释

  • 要加密和解码的信息存储在Mess变量中。
  • 用于编码和解码的私钥被存储在私钥变量中。
  • Trav被用来选择编码和解码。
  • 并保存结果。

第4步 . 编码的功能

def Encode(key,mess):
    cn=[]
    for i in range(len(mess)):
        key_m = key[i % len(key)]
         enc.append(chr((ord(message[m]) + ord(key_m)) % 266))
    return base64.urlsafe_b64encode("".join(cn).encode()).decode()

第5步, 将功能转化为代码

def Decode(key,mess):
    dec1n=[]
    mess = base64.urlsafe_b64decode(mess).decode()
    for i in range(len(mess)):
        key m = key[i % len(key)]
        dec1n.append(chr((256 + ord(mess[i])- ord(key_m)) % 256))
    return "".join(dec1n)

解释

  • 函数chr将一个整数值转换成一个字符串,然后存储并返回”。使用join(dec),得到结果。
  • 对输入的材料进行解码,然后输出结果的二进制版本。
  • 循环往复,直到信息完成。

第6步。功能设置为模式

def Mode():
    if(mode.get() == 'g'):
      Ans.set(Encode(private_key.get(), Mess.get()))
    elif(mode.get() == 'b'):
       Ans.set(Decode(private_key.get(), Mess.get()))
    else:
       Ans.set('Invalid Mode')

解释一下

  • 如果用户定义的模式是 “e”,这个Encode()函数确实会被调用。
  • 如果模式设置为 “d”,将调用Decode()方法,否则,打印 “无效”。
  • 来自get private key()和get text()函数的值将作为参数传递给encode()和decode()函数。

第7步退出窗口

当应用程序被root.destroy()终止时, 主循环 将结束。

第8步.窗口重置功能

def Reset():
    Mess.set("")
    private_key.set("")
    mode.set("")
    Ans.set("")

第9步。按钮和标签

使用Tkinter对信息进行编码-解密
使用Tkinter对信息进行编码-解密

根是用来指出现在我们窗口中的文本,并以标签字体显示。Insertwidth是用来设置插入的宽度的。用于获取当前文本的textvariable被调用,所以当按钮被点击时,将光标的背景颜色设置为入口小部件根。当我们需要启动我们的应用程序时,方法mainloop()被调用。

输出

使用Tkinter对信息进行编码-解密

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程