课程章节:requests常见方法实战
课程讲师: Mushishi
课程内容:3-8 请求头中的加密串处理
接口加密--MD5加密
MD5代表消息摘要算法。它是一个哈希函数,可产生128位哈希值。可用作校验和验证数据完整性。它适用于非加密目的,例如确定分区数据库中特定密钥的分区。
md5加密的库:hashlib
加密写法:
import hashlib
name="杜转"
md5=hashlib.md5() #获取md5对象
md5.update(name.encode("utf-8")) #对name先进行转码,转码后对数据进行加密;
#----------为啥需要转码呢?因为包含了汉字
res=md5.hexdigest() #获取加密结果,以16进制返回
#res=md5.digest() #二进制结果
其他注意点:
digest返回:b'\x0c\xc1u\xb9\xc0\xf1\xb6\xa81\xc3\x99\xe2iw&a'
hexdigest返回:0cc175b9c0f1b6a831c399e269772661------一般用这个
加密有一层加密,有双层加密,多层加密:
若双层加密,1. 可将res继续进行加密 2.或者第一次加密的结果和另一个参数加载一起进行加密,具体需要看项目后台的实现,然后模拟接口的加密;
加密用法:
登录时密码加密; 请求头加密;上传文件或图片后,以md5作为文件名;
verify=False,不验证ssl证书;(一般https请求中使用)
代码报错:加了verify=False后代码报异常: InsecureRequestWarning: Unverified HTTPS request is being made to host 'www.imooc.com'. Adding certificate verification is strongly advised.
原因:requests默认附带了一套https信任的证书,不加verify时,默认为True,开启SSL验证。每次调用接口,都会下载证书,验证证书。此时不会报错;但是requests默认附带的根证书在每次requests更新时才会更新,如果固定使用某一版本的requets,那么证书就有可能太旧了。
如果证书版本低会导致证书验证抛出SSLError。
课程收获:
收获满满,老师讲的挺喜欢,最后实践到了自己的项目中。把学习和工作想融合;