3.31python学习笔记
2022/4/18 1:12:44
本文主要是介绍3.31python学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
hashlib加密模块
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。什么是摘要算法呢?摘要算法又称哈希算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串。
#具体使用 import hashlib md = hashlib.md5() # 生成一个具有加密功能的对象 md.update('hello'.encode('utf-8')) # 往对象里传明文数据 update只能接受bytes类型的数据 md.update(b'hi') # 往对象里传明文数据 update只能接受bytes类型的数据 print(md.hexdigest()) # 获取明文数据对应的密文 #分多次传入内容,但是生成的密文还是一样的
-
不同的算法 使用方法是相同的
密文的长度越长 内部对应的算法越复杂
但是
- 时间消耗越长
- 占用空间更大
-
通常情况下使用md5算法 就可以足够了
该类方法虽然与编码与解码相类似,但当明文被加密后是不能被解密的,并且加密的密文也是固定的。所以对于一些简单的明文加密后确实可以进行破解,但是破解方法也是比较暴力的穷举法,一个答案一个答案去验证。
加盐处理
import hashlib md = hashlib.md5() # 公司自己在每一个需要加密的数据之前 先手动添加一些内容 md.update(b'oldboy.com') # 加盐处理 md.update(b'hello') # 真正的内容 print(md.hexdigest())
动态加盐
import hashlib def get_md5(data): md = hashlib.md5() md.update('加盐'.encode('utf-8')) md.update(data.encode('utf-8')) return md.hexdigest() password = input('password>>>:') res = get_md5(password) print(res)
logging日志模块
日志模块记录程序运行过程中的各种状态。 日志有五个等级 #CRITICAL: 特别糟糕的事情,如内存耗尽、磁盘空间为空,一般很少使用 #ERROR: 发生错误时,如IO操作失败或者连接问题 #WARNING: 发生很重要的事件,但是并不是错误时,如用户登录密码错误 #INFO: 处理请求或者状态变化等日常事务 #DEBUG: 调试过程中使用DEBUG等级,如算法中每个循环的中间状态
具体使用大部分是复制 粘贴
import logging logging.basicConfig(filename='access.log', format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p',#p是上下午 level=30,#级别,比30大的都会记录 )#这么多参数瞄一眼,不需要记住 logging.debug('debug日志') # 10 logging.info('info日志') # 20 logging.warning('warning日志') # 30 logging.error('error日志') # 40 logging.critical('critical日志') # 50
(简单的日志)使用流程:8步
- logger对象:负责产生日志。logger.getLogger()方法填写日志的名字
- filter对象:过滤日志(了解)
- handler对象:控制日志输出的位置(存放到文件/终端)可以有多个
- formmater对象:规定日志内容的格式。
- 给logger对象绑定handler对象:addHandler()
- 给handler绑定输出格式(formmate).setFmatter()方式
- 设置日志等级.setLevel()
- 写日志.debug()
import logging # 1.logger对象:负责产生日志 logger = logging.getLogger('程序功能说明') # 2.filter对象:过滤日志(了解) # 3.handler对象:控制日志输出的位置(文件/终端) hd1 = logging.FileHandler('a.log',encoding='utf-8') # 输出到文件中 hd2 = logging.StreamHandler() # 输出到终端 # 4.formmater对象:规定日志内容的格式 fm1 = logging.Formatter( fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', ) fm2 = logging.Formatter( fmt='%(asctime)s - %(name)s: %(message)s', datefmt='%Y-%m-%d', ) # 5.给logger对象绑定handler对象。即给logger对象指定输出位置 logger.addHandler(hd1) logger.addHandler(hd2) # 6.给handler绑定formmate对象。即给输出位置绑定输出内容的格式 hd1.setFormatter(fm1) hd2.setFormatter(fm2) # 7.设置日志等级 logger.setLevel(10) # 8.记录日志 logger.debug('运行开始')
这篇关于3.31python学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享