python编写程序,实现一个注册登录程序,调用hashlib并对密码进行加密
以下是效果图:
编写思路:首先引入hashlib库,要实现注册、登录、退出、加密等功能,我们可以分别定义一个函数,在函数中实现功能。首先定义一个密码加密功能函数def encryption(passwd),在其中实现对密码的加密,调用hashlib库:
hashlib 库 简介:
import hashlib #引入
>>> md5 = hashlib.md5("12345".encode("utf-8"))
>>> md5
<md5 _hashlib.HASH object @ 0x000002BC123C7B10>
>>> md5.hexdigest()
'827ccb0eea8a706c4c34a16891f84e7b' #在cmd py里运行
破解密码方法: 先把MD5的值存下来,去md5在线解密破解,md5解密加密 (cmd5.com)破解
盐值混淆:
>>> md5 = hashlib.md5("12345".encode("utf-8"))
>>> md5.update("&%$#@*&^%$#".encode("utf-8"))
>>> md5.hexdigest()
'1ca76dc12f1082bebb17d6ec187b45f8'
注意:盐值越复杂,越安全
定义第二个函数:实现用户注册,for实现
定义第三个函数:实现用户登录,for实现
定义第四个函数:实现突出系统,for实现
定义第四个函数:实现开始界面,分支语句实现
下面展示完整代码:
import hashlib as hash
username={}
def encryption(passwd):
passwd=hash.md5(passwd.encode("utf-8"))#加密
passwd.update("!@#$%^&*".encode('utf-8'))#加点盐
passwd=passwd.hexdigest()
return passwd
def register():
global username
user=input('请输入用户名\n')
for i,k in username.items():
if user==i:
print('\t\t\t\t账号已存在')
start()
passwd=input('请输入密码\n')
passwd=encryption(passwd)
a={user:passwd}
username.update(a)
def login():
global username
user=input('请输入用户名\n')
passwd=input('请输入密码\n')
passwd=encryption(passwd)
for i,k in username.items():
if user==i and passwd==k:
print("\t\t\t登录成功")
else:
print("\t\t\t密码或账号错误")
start()
def quit():
exit()
def start():
print('*'*100)
print('\t\t\t',"1.用户注册")
print('\t\t\t',"2.用户登录")
print('\t\t\t',"3.退出系统")
print('*'*100)
print("请输入编号:")
inp=input()
if inp=='1':
register()
start()
elif inp=='2':
login()
start()
else:
quit()
start()