# python学习23——课后练习
# 方便下面题目操作的函数
# 1、把登录与注册的密码都换成密文形式
#加密加盐
def pwd_md5(password):
res=hashlib.md5()
res.update('天王盖地虎'.encode('utf8'))#记得编编码处理uodate() md5今晚再练习几遍
res.update(password.encode('utf8'))
res.update('宝塔阵河妖'.encode('utf8'))
return res.hexdigest() #提取追后全部列表结果的加密程序
pwd_md5('被加密密码')
密码也是一样加密比对
# # 方法2
import hashlib
m=hashlib.md5()
# 需要时调用
m.update(加密.encode('utf8')) #记得编码
# 2、文件完整性校验(考虑大文件)
import hashlib
m=hashlib.md5()
def a():
with open('a.txt',mode='r',encoding='utf8')as f:
l=[10,20,30] #利用seek取值方法截断 类似切片
for i in l: #再列表中循环后添加到seek中 ”t“模式只支持0(指针当前位置) #2追后负数往前取但是不支持t 模式1最前 取2同理
f.seek(i,0)
res=f.read(100)
res1=m.update(res.encode('utf8')) #记得取值对比
return res1
def b():
with open('a.txt',mode='r',encoding='utf8')as f:
l = [10, 20, 30]
for i in l:
f.seek(i, 0)
res = f.read(100)
res1=m.update(res.encode('utf8'))
if res1==a():
print('文件完整')
else:
print('文件不完整')
b()
# 3、注册功能改用json实现
import json
user_naem=eval(input('请输入用户名'))
user_pwd=input('请输入密码')
with open('a.json',mode='w',encoding='utf8')as f:
json.dump(f'{user_naem}:{user_pwd}',f) 一般只接受两个一个是指针另一个是等类型变量 外ps:ensure_ascii=False 可显示中文
# 4、项目的配置文件采用configparser进行解析