1.摘要算法hashlib
1. md5加密
#1. 摘要算法
#md5加密算法 32位
import hashlib
username ="alex"
md5_obj =hashlib.md5()
# md5_obj =hashlib.md5("加盐".encode("utf-8")) #加盐操作.
# md5_obj =hashlib.md5(username.encode("utf-8")) #加盐操作.
md5_obj.update(b"alex") #使用md5摘要算法对 alex进行摘要 必须是bytes类型进行摘要.
res =md5_obj.hexdigest() #获取摘要的结果.
print(res)
#结果:534b44a19bf18d20b71ecc4eb77c572f
#sha1加密算法 40位
import hashlib
md5_obj =hashlib.sha1()
md5_obj.update(b"alex") #使用md5摘要算法对 alex进行摘要 必须是bytes类型进行摘要.
res =md5_obj.hexdigest() #获取摘要的结果.
print(res)
#结果 60c6d277a8bd81de7fdde19201bf9c58a3df08f4
2.文件校验操作
#2. 文件校验操作
with open("mengbin","rb") as f :
md5_obj =hashlib.md5()
md5_obj.update(f.read())
res =md5_obj.hexdigest()
print(res)
#摘要结果为:c7d6ca99c0c7a9e5beb0431b98e5ff11
with open("mengbin","rb") as f :
md5_obj =hashlib.md5()
for line in f:
md5_obj.update(line)
res =md5_obj.hexdigest()
print(res)
#摘要结果为:c7d6ca99c0c7a9e5beb0431b98e5ff11
#结论:update操作可以在hexdigest之前执行多次,分次对一个长字符串进行校验 ,结果是对整个长字符串的摘要结果.
2.logging模块
#4. logging 模块
import logging
logging.basicConfig(level=logging.DEBUG) #设置等级 . 默认是warning往上的信息.
# DEBUG:root:debug message
# INFO:root:info message
# WARNING:root:warning message
# ERROR:root:error message
# CRITICAL:root:critical message
#调试
logging.debug("debug message")
#信息
logging.info("info message")
#警告
logging.warning("warning message")
#错误
logging.error("error message")
#严重错误
logging.critical("critical message")
3.logging案例
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename='test.log',
filemode='a')
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')