好友
阅读权限20
听众
最后登录1970-1-1
|
麦田孤望者
发表于 2020-2-22 17:43
成品及源码:链接:https://pan.baidu.com/s/1aQdD7xxtoqp1WAmWXlnZPA 提取码:4t9z
源码:
main.py内容
[Python] 纯文本查看 复制代码
import sys,os,json,re
from PyQt5.QtWidgets import QApplication, QMainWindow
from functools import partial
import hashlib
import login
path = os.path.dirname(os.path.realpath(__file__))+'\\'
try:
with open(path+'users.txt','r') as f:
pass
except:
with open(path+'users.txt','w') as f:
f.write('91 93')
def en_decode(txt,mode):
wi1 = "'[,0] \""
wi2 = 'OCP0L%@'
if mode == 'en':
return txt.translate(str.maketrans(wi1,wi2))
else:
return txt.translate(str.maketrans(wi2,wi1))
def acsii(txt,mode):
if mode=='en':
return ' '.join([str(ord(i)) for i in txt])
else:
a=''
txt = re.sub('\\n',' ',txt)
txt = txt.split(' ')
#print(txt)
for i in txt:
a+=chr(int(i))
return a
def sign_in(ui):
user = str(ui.lineEdit_user.text())
psw = str(ui.lineEdit_psw.text())
if len(psw) < 6:
ui.textBrowser.setText('密码至少6位!')
return False
h1 = hashlib.md5()
h1.update(user.encode(encoding='utf-8'))#
h2 = hashlib.md5()
h2.update(psw.encode(encoding='utf-8'))#.hexdigest()
with open(path+'users.txt','r') as f:
users = str(f.read())
##print(users)
users = acsii(users,'de')
#print(users)
users = en_decode(users,'de')
#print(users)
user_json = json.loads(users.replace('\'','"'))
#print(type(user_json),user_json)
user_json.append(["{}".format(h1.hexdigest()),"{}".format(h2.hexdigest())])
#print(user_json)
list1 = []
for i in user_json:
if i not in list1:
list1.append(i)
user_json=list1
user_json = acsii(str(user_json),'en')
#user_json = [ord(i) for i in str(user_json)]
#user_json = ' '.join(user_json)
#print(user_json)
with open(path+'users.txt','w') as f:
f.write(user_json)
#print(user_json)
ui.textBrowser.setText('注册成功!您的信息为\n账号:{}\n密码:{}'.format(user,psw))
ui.lineEdit_user.setText('')
ui.lineEdit_psw.setText('')
def check(ui):
user = str(ui.lineEdit_user.text())
psw = str(ui.lineEdit_psw.text())
h1 = hashlib.md5()
h1.update(user.encode(encoding='utf-8'))#
h2 = hashlib.md5()
h2.update(psw.encode(encoding='utf-8'))
with open(path+'users.txt','r') as f:
users = str(f.read())
#print(users)
users = acsii(users,'de')
users = en_decode(users,'de')
user_json = json.loads(users.replace('\'','"'))
in_result = [h1.hexdigest(),h2.hexdigest()]
#print(in_result)
if in_result in user_json:
#print('Success!')
ui.textBrowser.setText(user+',欢迎回来!')
ui.lineEdit_user.setText('')
ui.lineEdit_psw.setText('')
else:
ui.textBrowser.setText('Failed!')
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = login.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
MainWindow.setFixedSize(MainWindow.width(), MainWindow.height())
ui.LoginButton.clicked.connect(partial(check, ui))
ui.SignInButton.clicked.connect(partial(sign_in, ui))
sys.exit(app.exec_())
login.py文件内容
[Python] 纯文本查看 复制代码 # -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'login.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(359, 127)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.lineEdit_user = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_user.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
self.lineEdit_user.setObjectName("lineEdit_user")
self.gridLayout.addWidget(self.lineEdit_user, 0, 1, 1, 1)
self.label_psw = QtWidgets.QLabel(self.centralwidget)
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(14)
self.label_psw.setFont(font)
self.label_psw.setObjectName("label_psw")
self.gridLayout.addWidget(self.label_psw, 1, 0, 1, 1)
self.lineEdit_psw = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_psw.setObjectName("lineEdit_psw")
self.gridLayout.addWidget(self.lineEdit_psw, 1, 1, 1, 1)
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setObjectName("textBrowser")
self.gridLayout.addWidget(self.textBrowser, 0, 2, 3, 1)
self.label_user = QtWidgets.QLabel(self.centralwidget)
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(14)
self.label_user.setFont(font)
self.label_user.setObjectName("label_user")
self.gridLayout.addWidget(self.label_user, 0, 0, 1, 1)
self.LoginButton = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("黑体")
font.setPointSize(13)
self.LoginButton.setFont(font)
self.LoginButton.setObjectName("LoginButton")
self.gridLayout.addWidget(self.LoginButton, 2, 0, 1, 1)
self.SignInButton = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("黑体")
font.setPointSize(12)
self.SignInButton.setFont(font)
self.SignInButton.setObjectName("SignInButton")
self.gridLayout.addWidget(self.SignInButton, 2, 1, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Login"))
self.label_psw.setText(_translate("MainWindow", "密码"))
self.label_user.setText(_translate("MainWindow", "用户名"))
self.LoginButton.setText(_translate("MainWindow", "登录"))
self.SignInButton.setText(_translate("MainWindow", "注册"))
|
免费评分
-
查看全部评分
|