#!/usr/bin/python
# -*- coding:utf-8 -*-
# import getpass python IDE中无法显示密码
import hashlib
f1 = open('db','r')
f2 = f1.read()
f1.close()
user_info_list= []
user_str_list = []
#使用MD5算法给密码加密
def a_md5(password):
md5 = hashlib.md5()
md5.update(password.encode())
passwd = md5.hexdigest()
return passwd
def b_md5():
password = input("请再次输入您的密码:")
md5 = hashlib.md5()
md5.update(password.encode())
password = md5.hexdigest()
return password
#MD5加盐
def jy1_md5(password):
passwd = a_md5(password + 'the-Salt')
return passwd
#定义注册
def ZhuCe():
# option == '2'
Registered_users = input("请输入您要注册的用户:")
for item in user_info_list:
if Registered_users in item["name"]:
print('该用户已经被注册,请重新注册或直接登陆:!')
break
else:
passwd = input("请输入您的密码:")
a = a_md5(passwd)
b = b_md5()
jy = jy1_md5(passwd)
if a == b:
pass
else:
print("您输入的密码不一致,请重新输入:")
exit()
v2 = {
"name":Registered_users,
"passwd":jy,
"times":0
}
user_info_list.append(v2)
print('恭喜您注册成功!!!')
#写入db
def write():
for item2 in user_info_list:
user_last = "%s|%s|%s" % (item2["name"], item2["passwd"], item2["times"])
user_str_list.append(user_last)
b = "\n".join(user_str_list)
file = open('db', 'w')
file2 = file.write(b)
file.close()
#####
if len(f2) != 0:
for i in f2.split("\n"):
a=i.split("|")
# print(i,a)
v = {
"name":a[0],
"passwd":a[1],
"times":a[2]
}
# print(v)
user_info_list.append(v)
# print(user_info_list)
times = 0
while True:
option = input("登陆输入1,注册输入2,退出输入q:")
if option == '1':
user = input("输入用户名:")
for item in user_info_list:
# print(item)
if user in item["name"]:
# print(item["name"])
for i, j in enumerate(user_info_list):
if user == j["name"]:
# print(j["times"])
if j["times"] == '3':
print("您的用户已被锁定!")
exit()
else:
while times < 3:
passwd = input("输入密码:")
p = a_md5(passwd + 'the-Salt')
# print(p)
if user == item["name"] and p == item["passwd"]:
print("登陆成功")
exit() #或用break
times += 1
else:
j["times"] = "3"
user_info_list[i]=j
print("您的用户已锁定,请联系管理员")
write()
exit()
else:
print("没有您的信息,请注册!")
elif option == '2':
ZhuCe()
elif option == 'q':
print("您以退出!")
break
else:
ZhuCe()
write()
#密码密文显示:python IDE中不支持
import getpass
password=getpass.getpass("input password")