清秋2018

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

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)
复制代码

 

posted on   清秋2018  阅读(320)  评论(0编辑  收藏  举报

点击右上角即可分享
微信分享提示