# 作业:
# 1、把登录与注册的密码都换成密文形式
import hashlib
def registered():
name=input('请输入您想注册的用户名:').strip()
pwd=input('请输入您想注册的登录密码:').strip()
c_pwd=input('请再次输入您的登录密码:').strip()
if pwd == c_pwd:
#密码加密
m=hashlib.md5()
m.update(pwd.encode('utf-8'))
mm=m.hexdigest()
with open(r'D:\cool\db',mode='at',encoding='utf-8') as x:
x.write(f'{name}:{mm}\n')
print('注册成功')
else:
print('密码不一致,请重新输入')
registered()
def login():
inp_name=input('用户名:').strip()
inp_pwd=input('密码:').strip()
with open(r'D:\cool\db','rt',encoding='utf-8') as y:
for z in y:
k,v=z.strip().split(':')
if inp_name in k:
# 解密
m2 = hashlib.md5()
m2.update(inp_pwd.encode('utf-8'))
m3=m2.hexdigest()
if v == m3:
print('登录成功')
break
else:
print('登录失败')
break
else:
print("用户名不存在")
login()
# 2、文件完整性校验(考虑大文件)
#取出文件的哈希值
import hashlib
def func(way):
with open(way,mode='rb')as f:
f.seek(2000,0)
x=f.read(666)
f.seek(-2000,2)
y=f.read(666)
z=hashlib.md5()
z.update(x)
z.update(y)
n=z.hexdigest()
return n
print(func(r'C:\Users\Administrator\Desktop\英雄时刻_20190808-23点07分02s.avi'))
#取到的哈希值 #bde8ccfb752800a9830222e695b4e427
#拿取到的哈希值和文件做对比
def func2(way,v):
with open(way, mode='rb')as f:
f.seek(2000,0)
x=f.read(666)
f.seek(-2000,2)
y=f.read(666)
z=hashlib.md5()
z.update(x)
z.update(y)
n=z.hexdigest()
if n==v:
print('验证成功')
else:
print('验证失败')
# func2(r'C:\Users\Administrator\Desktop\英雄时刻_20190808-23点07分02s.avi','bde8ccfb752800a9830222e695b4e427')
#验证成功
# func2(r'C:\Users\Administrator\Desktop\英雄时刻_20190730-21点27分59s.avi','bde8ccfb752800a9830222e695b4e427')
#验证失败
# 3、注册功能改用json实现
import hashlib
import json
def registered():
name = input('请输入您想注册的用户名:').strip()
pwd = input('请输入您想注册的登录密码:').strip()
c_pwd = input('请再次输入您的登录密码:').strip()
if pwd == c_pwd:
name=json.dumps(name)
pwd=json.dumps(pwd)
# 密码加密
m = hashlib.md5()
m.update(pwd.encode('utf-8'))
mm = m.hexdigest()
with open(r'D:\cool\db', mode='at', encoding='utf-8') as x:
x.write(f'{name}:{mm}\n')
print('注册成功')
else:
print('密码不一致,请重新输入')
registered()
# 4、项目的配置文件采用configparser进行解析
import configparser
def login():
inp_name=input('用户名:').strip()
inp_pwd=input('密码:').strip()
x=configparser.ConfigParser()
x.read(r'C:\Users\Administrator\AppData\Local\Temp\cool5.py\db2.ini')
u=x.options('user')
# print(u)
if inp_name in u:
if inp_pwd == x.get('user',inp_name):
print('登录成功')
else:
print('登录失败')
else:
print('用户名不存在')
login()