python 13篇 加密模块和网络编程之 requests模块

一、加密

1.1 md5加密

# md5 加密   ,同样的字符串,使用md5加密后结果都一样。加密后不可逆
import hashlib
s = '123456'
def my_md5(s):
    s = str(s)
    s = s.encode()
    m = hashlib.md5(s.encode())  # 必须要传一个bytes类型的参数
    result = m.hexdigest()

print(my_md5(s))

# 加盐
passwd = '123456' + '#@##@@#%233422'  # 后面加上随机生成的字符串,这一部分叫盐值

  常见的用户名的密码使用md5加密后,在登录时,是把传参的明文密码进行md5加密后和数据库中加密的密码进行比对,如果一致就可以登录。

1.2 base64加密和解密

import base64

s = 'xiaobai26623@42$##中文'
# 加密
r = base64.b64encode(s.encode())  # 传参要传bytes类型,返回的也是bytes类型
print(r.decode())
# 解密
str1 = 'eGlhb2JhaTI2NjIzQDQyJCMj5Lit5paH'
result = base64.b64decode(str1)
print(result.decode())
# 执行结果:
#  eGlhb2JhaTI2NjIzQDQyJCMj5Lit5paH
#  xiaobai26623@42$##中文

二、网络编程

# 做接口自动化
import requests

# 请求接口 client
url = 'http://127.0.0.1:8888/login'
data = {'username': 'niuhanyang2', 'password': '1'}

# get 请求
r = requests.get(url, data)
print(r.json())  # 返回的字典
print(r.text)  # 返回字符串格式
print(r.content)  # 返回bytes类型  下载图片或其他文件时使用

r2 = requests.post(url, data)
r3 = requests.post(url, data, params={'version': '1.0'}) # params中的参数传在url中,data传在请求体中
# 传cookie 的两种方式
cookie = {}  # 把抓包中的cookie中的数据,每个字段都一一做映射
headers = {'cookie': ''}  # 直接把抓包中的一堆cookie数据放入字典中cookie的value中

# 入参是json
r4 = requests.post(url, json=data)

# 上传文件,入参是文件
url2 = 'http://api.nnzhp.cn/api/file/file_upload'
data = {'file': open('mock_flask.py', 'rb')}
r5 = requests.post(url2, files=data)

# 下载文件
url3 = 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=293407302,1362956882&fm=26&gp=0.jpg'
r = requests.get(url3)
r = requests.get(url3, verify=False)  # 如果遇到https请求报错,加上verify=False
f = open('a.jpg', 'wb')
f.write(r.content)
f.close()
print(r.content)
原文地址:https://www.cnblogs.com/lhy-qingqiu/p/13694011.html