python加密算法及GUI实现(python加密解密算法)
off999 2024-09-23 11:34 46 浏览 0 评论
简单的加密算法
import hashlib
str = 'hello world'
bytestring = str.encode('UTF-8') # 生成bytes类型数据
m = hashlib.md5() # 产生MD5加密对象
m.update(bytestring) # 把产生的bytes加入到m对象中
a = m.hexdigest() # 生成密文
print(a)
加密算法的GUI实现
使用QtDesigner绘制GUI框架
如上图所示打开QtDesigner,并绘制如下图框架。
注意:上图框架中的文本框使用的是plainTextEdit。
将绘制好的.ui文件用PyUIC转换为.py文件。
功能实现代码如下:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
import hashlib
# 加密方式
encry_mode = {
'md5': hashlib.md5,
'sha1': hashlib.sha1,
'sha224': hashlib.sha224,
'sha256': hashlib.sha256,
'sha384': hashlib.sha384,
'sha512': hashlib.sha512,
'sha3_224': hashlib.sha3_224,
'sha3_256': hashlib.sha3_256,
'sha3_384': hashlib.sha3_384,
'sha3_512': hashlib.sha3_512,
}
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(505, 360)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(200, 10, 91, 21))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(20, 130, 51, 21))
self.label_2.setObjectName("label_2")
self.comboBox = QtWidgets.QComboBox(Form)
self.comboBox.setGeometry(QtCore.QRect(70, 130, 75, 22))
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(170, 130, 31, 21))
self.label_3.setObjectName("label_3")
self.comboBox_2 = QtWidgets.QComboBox(Form)
self.comboBox_2.setGeometry(QtCore.QRect(200, 130, 61, 22))
self.comboBox_2.setObjectName("comboBox_2")
self.comboBox_2.addItem("")
self.comboBox_2.addItem("")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(350, 130, 75, 23))
self.pushButton.setObjectName("pushButton")
self.label_4 = QtWidgets.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(220, 170, 51, 21))
self.label_4.setObjectName("label_4")
self.plainTextEdit = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit.setGeometry(QtCore.QRect(20, 30, 461, 91))
self.plainTextEdit.setObjectName("plainTextEdit")
self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit_2.setGeometry(QtCore.QRect(20, 190, 461, 151))
self.plainTextEdit_2.setObjectName("plainTextEdit_2")
self.retranslateUi(Form)
self.pushButton.clicked.connect(self.encryption)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "加密算法"))
self.label.setText(_translate("Form", "需要加密的内容"))
self.label_2.setText(_translate("Form", "加密算法"))
self.comboBox.setItemText(0, _translate("Form", "md5"))
self.comboBox.setItemText(1, _translate("Form", "sha1"))
self.comboBox.setItemText(2, _translate("Form", "sha224"))
self.comboBox.setItemText(3, _translate("Form", "sha256"))
self.comboBox.setItemText(4, _translate("Form", "sha384"))
self.comboBox.setItemText(5, _translate("Form", "sha512"))
self.comboBox.setItemText(6, _translate("Form", "sha3_224"))
self.comboBox.setItemText(7, _translate("Form", "sha3_256"))
self.comboBox.setItemText(8, _translate("Form", "sha3_384"))
self.comboBox.setItemText(9, _translate("Form", "sha3_512"))
self.label_3.setText(_translate("Form", "编码"))
self.comboBox_2.setItemText(0, _translate("Form", "utf-8"))
self.comboBox_2.setItemText(1, _translate("Form", "gbk"))
self.pushButton.setText(_translate("Form", "加密"))
self.label_4.setText(_translate("Form", "加密结果"))
def encryption(self):
encryption_algorithm = self.comboBox.currentText() # 加密算法
coding_scheme = self.comboBox_2.currentText() # 编码方式
string = self.plainTextEdit.toPlainText()
choice_encryption = encry_mode[encryption_algorithm] # 选择加密方式
choice_coding = choice_encryption(string.encode(coding_scheme)) # 选择编码方式
hexadecimal = choice_coding.hexdigest() # 转为十六进制
self.plainTextEdit_2.setPlainText(hexadecimal)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_Form()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
运行效果
欢迎技术交流,共同进步。
相关推荐
- pe启动工具(pe启动工具排行榜)
-
u盘pe是可以重复使用的,没有问题的,可以给无数的电脑安装系统。用u盘的做的pe只要不是中病毒,或者你格式化u盘,里面的pe系统一直都是可以用的哈。只是说现在的pe系统最新的更新的技术不一样,...
- 笔记本电脑按键失灵怎么解决
-
笔记本电脑按键失灵可能是由于键盘内部灰尘或者物质堵塞,也可能是由于键盘接触不良或者硬件故障导致。修复方法可以尝试清洗键盘或更换键盘,如果还是不行则需要检查硬件或者寻求专业维修人员的帮助。在日常使用中,...
- 苹果手机imei查询官网(苹果手机imei查询官网免费)
-
IMEI查询官网:首页:http://www.imeidb.comIMEIdb的客户包括了国内知名手机厂商、IMEIdb始创于2011年IMEIdb是国内唯一的提供面向普通用户和商业用户的IMEI一体...
- 斐讯路由器还能用吗(2021年斐讯路由器还能用吗)
-
斐讯路由器K2P以上型号的路由器还能用并且还不错。k2p接人个500M左右的网络还可以,K3、K3C更不用说了。斐讯虽然倒闭了,但网络上好多大师给这些路由器续命,适配了不少优秀的路由固件。可以呀,我有...
- windows 10下载工具(win10下载软件的工具)
-
Windows10系统下载软件方法,如果你想使用你的Windows10系统下载软件,那么你可以去你的电脑的应用市场里面,首先下载一个ie的浏览器,这样把你的ie浏览器安装到电脑桌面上面,然后可以在...
- 个人电子邮箱格式怎么填写(电子邮箱 个人)
-
很高兴为您解答,电子邮箱的格式通常为:xxx@xx.com。其中xxx为用户名(邮箱帐户名),“@”后面的是域名;如腾讯的邮箱格式一般为:xxxx@qq.com(xxxx为QQ号码)邮箱名加艾特加邮箱...
- internet下载地址(internet download manager下载安装版)
-
下载IE7破解版安装是先验证然后不会通过啊!那样你就把C:\DocumentsandSettings\AllUsers\ApplicationData\WindowsGenuineAdvantage\...
- flash官方插件手机版(手机flash插件下载安卓版)
-
1、下载最新版本的AdobeFlashPlayer的APP到你的Android设备上。2、确保你的浏览器支持Flash,并在你的设备上依次度打开设置>安全勾选上“未知的来源”。3、...
- 如何启动资源管理器(如何启动资源管理器中的文件)
-
在Windows中,启动资源管理器有以下三种方法:1.使用快捷键Win+E:这是最常用的方法,按下Windows键和字母"E"键同时,即可快速打开资源管理器。这种方法简便快捷,...
- 格式化手机储存是什么意思(格式化手机内存是什么)
-
意思就是把你的内存卡回复出厂设置,卡里面的东西就一并删除了,格式化存储卡也就是把存储卡里的东西全部删掉,不过得注意一些自己有用东西。手机格式化就是恢复出厂设置,删除分区内的所有东西,操作应当慎重。格式...
- 怎么下载32位版本的qq(qq32位下载手机)
-
64位系统支持32位系统的软件,而32位系统不支持64位系统软件,现在大多数软件都是按32位开发环境开发的,像QQ这些,如果出64位将会增加成本。如有一天淘汰了32位系统,所有软件就是64位了除去后者...
- 声卡驱动在哪里打开win11(声卡驱动在那)
-
要更新Win11的声卡驱动,首先需要打开设备管理器,找到声音、视频和游戏控制器选项,右键点击需要更新的声卡驱动,选择“更新驱动程序”,然后选择“自动搜索更新的驱动程序”,系统会自动搜索并下载最新的驱动...
- 下载钉钉软件(下载钉钉软件有什么风险)
-
应用商店下载正版的。可以通过应用商城下载,这里面下载是自动安装的,也可以下载一个浏览器,然后在浏览器中输入钉钉,并点击搜索找到官方网站进行合适的资源下载步步高家教机可以下载安装钉钉下载钉钉要用手机号码...
- windows10序列号查看(win10怎样查看序列号)
-
Win10快速查看序列号的方法: 1、使用电脑快捷键组合“WIN+R”,打开运行窗口。? 2、输入“regedit”,打开注册表编辑器。? 3、打开注册表,路径HKEY_LOCAL_MA...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
