说起Python的图形用户界面 (GUI, Graphical User Interface)设计,就让人想到python的很多GUI库,比如标准库tkinter和第三方库PyQt5,wxpython等等,在这里我推荐使用PyQt5,因为它有个工具叫Qt Designer,可以直接手动设置界面,把控件拖放到指定位置去。而且QT支持的控件比标准库tkinter多,而且还比它设计的GUI好看,所以我用上PyQt5后就强烈的喜欢了它。
Qt Designer打开后界面
Pyqt5安装用pip安装即可,QtDesigner配置和安装详见:
https://blog.csdn.net/hubz131/article/details/79352443
接下来介绍一下摘要算法,消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文,比如如下代码:
>>> import hashlib as h
>>> str1='你打球像蔡徐坤'
>>>bytestring=str1.encode('UTF-8') #生成bytes类型
>>> m=h.md5() #产生MD5对象
>>> m.update(bytestring) #把产生的bytes加入到m对象中
>>> m.hexdigest() #生成摘要
'edea833bc2b9c8d69cffdc2a93151df1'
只有2个bytes类型的字符串完全相同,他们生成的摘要才完全一致,稍微改动一处地方生产的摘要就完全不一样,比如
字符串(utf-8编码)
摘要md5
消息摘要算法的主要特征是加密过程不需要密钥
e408fc959a50d64ebac335841f98ed88
消息摘要算法的主要特征是加密过程不需要密钥?
1a9890a26144bc94bee18a53a7c83faa
Python的标准库hashlib有很多这样的加密算法,除了经典的MD5还有sha1,sha224,sha512等。
当Qt Desiger配置好后,我们打开它
生成一个空白的界面
按如下设计: