hashlib 和loggin模块
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')