简单的加密算法
import hashlibstr = \'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_())
执行效果































