Python模块(3)

image

hashlib模块

hash,翻译过来就是‘散列’,也可以直接叫做‘哈希’,把任意长度的输入,通过某种hash算法,变成固定的长度输出,该输出就是散列值,也成为摘要值。该算法就是哈希函数,也称为摘要函数。
md5是最常见的摘要算法,速度很快,生成的结果是固定的16字节,通常用一个32位的16进制字符串表示。sha1算法更加安全一点,它的结果是20字节长度,通常使用一个40位的16进制字符串表示。而比sha1更安全的算法就是sha256和sha512,不过越安全的算法越慢,并且摘要的长度更长,也就是生成的密文更加长。
1、详细步骤
image

值得注意的是:
1、加密之后的密文数据是没有办法反解密成明文数据的,市面上所谓的破解,其实就是提前酸楚一系列明文对应的密文之后比对密文再获取明文。
2、涉及到用户密码存储,其实都是密文,只有用户自己知道明文是什么:
(1)内部程序员也无法得知明文数据
(2)数据泄漏也无法得知明文数据

2、加盐处理
在对明文数据做加密处理过程前添加一些干扰项
image

动态加盐
在对明文数据做加密处理过程前添加一些变化的干扰项
image

3、校验文件一致性
在文件不是很大的情况下,可以将所有文件内部加密处理,但是如果文件特别大的话,全部加密处理会相当的耗时耗资源。此时可以做切片处理。

(1)全部加密处理
image

(2)切片处理
image

logging模块

1、日志的5个等级
image
2、日志的详细流程
image
3、配置字典

核心就在于CV

import logging
import logging.config

standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]'
'[%(levelname)s][%(message)s]' #其中name为getlogger指定的名字

simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'

logfile_path = 'a3.log'

log配置字典

LOGGING_DIC = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': standard_format
},
'simple': {
'format': simple_format
},
},
'filters': {}, # 过滤日志
'handlers': {
#打印到终端的日志
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler', # 打印到屏幕
'formatter': 'simple'
},
#打印到文件的日志,收集info及以上的日志
'default': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler', # 保存到文件
'formatter': 'standard',
'filename': logfile_path, # 日志文件
'maxBytes': 102410245, # 日志大小 5M
'backupCount': 5,
'encoding': 'utf-8', # 日志文件的编码,再也不用担心中文log乱码了
},
},
'loggers': {
#logging.getLogger(name)拿到的logger配置 空字符串作为键 能够兼容所有的日志
'': {
'handlers': ['default', 'console'], # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
'level': 'DEBUG',
'propagate': True, # 向上(更高level的logger)传递
}, # 当键不存在的情况下 (key设为空字符串)默认都会使用该k:v配置
},
}

使用配置字典

logging.config.dictConfig(LOGGING_DIC) # 自动加载字典中的配置
logger1 = logging.getLogger('xxx')
logger1.debug('好好的 不要浮躁 努力就有收获')

第三方模块

并不是python自带的,需要基于网络下载
1、下载第三方模块的方式:

(1)命令行借助于pip工具
pip3 install 模块名 ————>不知道版本默认是最新版本
pip3 install 模块名==版本号 ————>指定版本下载
pip3 install 模块名 - i 仓库地址 ————>临时切换
(2)pycharm快捷方式
settings——>project——>project interpreter——>双击或加号
如果需要改变下载源,点击manage管理添加源地址即可
下载完第三方模块之后,导入使用即可

2、我们可以切换下载的源(仓库)
(1)阿里云 http://mirrors.aliyun.com/pypi/simple/
(2)豆瓣 http://pypi.douban.com/simple/
(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
(5)华中科技大学http://pypi.hustunique.com/

3、下载第三方模块可能报错的情况以及解决措施
(1)报错的提示信息中含有关键词timeout
原因:网络不稳定
措施:再次尝试 或者切换更加稳定
(2)找不到pip命令
原因:环境变量问题
(3)没有任何的关键字,不同的模块报不同的错
原因:模块需要特定的计算机环境
措施:拷贝报错信息,打开浏览器,百度搜索即可

posted @ 2021-11-29 16:58  JudyJU  阅读(51)  评论(0)    收藏  举报