hashlib模块
hashlib模块一般用于明文加密,支持md5,sha1, sha224, sha256, sha384, sha512等算法
hash值的特点
- 只要传入的内容一样,得到的hash值一样,可用于非明文密码传输时密码校验
- 不能由hash值返解成内容,即可以保证非明文密码的安全性
- 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的,可以用于对文本的哈希处理
基本调用
import hashlib
new_md5 = hashlib.md5() #创建hashlib的md5对象
new_md5.update('字符串') #将字符串载入到md5对象中,获得md5算法加密。
print(new_md5.hexdigest()) #通过hexdigest()方法,获得new_md5对象的16进制md5显示。
简单来说。就是三步:
1,建立加密对象。2,对字符串进行算法加密。3,获得16进制显示
向对象中传入字符串时,必须为编码类型。可以使用字符串前b' '的方法或使用
加盐
“加盐”就是对原密码添加额外的字符串,然后再生成MD5值,这样就能够有效防止因用户数据库泄露而造成的通过碰撞方法破解密码了
import hashlib
yan = '!任#意%字^符@' #定义加盐字符串
pwd = input('>>>')
md5_pwd = hashlib.md5()
md5_pwd.update((pwd+yan).encode('UTF-8')) #加盐
pwd = md5_pwd.hexdigest()
logging模块
logging一般用于日志
日志的等级
DEBUG < INFO < WARNING < ERROR < CRITICAL,而日志的信息量是依次减少的
日志等级(level) | 描述 |
---|---|
DEBUG | 最详细的日志信息,典型应用场景是 问题诊断 |
INFO | 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作 |
WARNING | 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的 |
ERROR | 由于一个更严重的问题导致某些功能不能正常运行时记录的信息 |
CRITICAL | 当发生严重错误,导致应用程序不能继续运行时记录的信息 |
日志流程处理
1、创建一个logger
2、设置下logger的日志的等级
3、创建合适的Handler(FileHandler要有路径)
4、设置下每个Handler的日志等级
5、创建下日志的格式
6、向Handler中添加上面创建的格式
7、将上面创建的Handler添加到logger中
8、打印输出logger.debuglogger.infologger.warninglogger.errorlogger.critical