米鼠商城

多快好省,买软件就上米鼠网

最新项目

人才服务

靠谱的IT人才垂直招聘平台

python加密算法及GUI实现

  • xym01
  • 1
  • 2019-07-18 11:32

简单的加密算法

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_())

运行效果

欢迎技术交流,共同进步。



这里给大家推荐一个在线软件复杂项交易平台:米鼠网 https://www.misuland.com

米鼠网自成立以来一直专注于从事软件项目人才招聘软件商城等,始终秉承“专业的服务,易用的产品”的经营理念,以“提供高品质的服务、满足客户的需求、携手共创双赢”为企业目标,为中国境内企业提供国际化、专业化、个性化、的软件项目解决方案,我司拥有一流的项目经理团队,具备过硬的软件项目设计和实施能力,为全国不同行业客户提供优质的产品和服务,得到了客户的广泛赞誉。



如有侵权请联系邮箱(service@misuland.com)

猜你喜欢

评论留言