zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    go1.13 mod 实践和常见问题
    etcd 添加用户,授权特定目录
    golang 你所不知道的 log 和 fmt
    redis 原理系列之--字符串存储的实现原理(1)
    golang 写文件--详细解释
    面向对象范式的核心本质是?---不是继承 不是封装也不是多态
    关于自控力和拖延 的一点分享--《自控力》
    Linux 精确判断是否同一文件--及终端获取字符串md5 的值
    ARM版本及系列
    技术团队塑造
  • 原文地址:https://www.cnblogs.com/lhy-qingqiu/p/13694011.html
Copyright © 2011-2022 走看看