Python使用MD5加密password进行登录

登录时,未加密状态下,请求接口

from configs.config import HOST
import requests
# 封装一个登录类
class Login():
    def login(self,inData):#登录方法
        #url路径,环境放配置文件,可维护性
        url = HOST+'/api/loginS'
        #参数
        payload = inData
        #请求
        resp = requests.post(url,json=payload)
        return resp.json()

if __name__ == '__main__':#快捷键 Ctrl+j
    res=Login().login({"username":"20154084","password":"123456"})
    print(res)#返回双引号是json 单引号是dict

登录时,直接传入原始密码,未进行MD5加密时,会报错,提示密码错误,这时我们可以用在线工具进行手动转换

 

 

传入手动转换后的MD5加密串:

from configs.config import HOST
import requests
# 封装一个登录类
class Login():
    def login(self,inData):#登录方法
        #url路径,环境放配置文件,可维护性
        url = HOST+'/api/loginS'
        #参数
        payload = inData
        #请求
        resp = requests.post(url,json=payload)
        return resp.json()

if __name__ == '__main__':
    res=Login().login({"username":"20154084","password":"e10adc3949ba59abbe56e057f20f883e"})
    print(res)#返回双引号是json 单引号是dict

 

 此时,登录接口已经正常登录,并返回对应的数据。

如何自动加密,无需手动加密再登录?

封装一个加密函数即可

from configs.config import HOST
import requests
import hashlib
import pprint
#封装一个md5加密函数
def get_md5(psw):
    """
    :param psw:
    :return:
    """
    #实例化一个md5对象
    md5=hashlib.md5()
    #调用加密方法
    md5.update(psw.encode("utf-8"))
    return md5.hexdigest()

# 封装一个登录类
class Login():
    def login(self,inData,mode=True):#登录方法
        #url路径,环境放配置文件,可维护性
        url = HOST+'/api/loginS'
        #字典名[键名]=新的值  字典修改值操作
        inData["password"] = get_md5(inData["password"])
        #参数
        payload = inData
        #请求
        resp = requests.post(url,json=payload)
        if mode:#获取token
            return resp.json()["token"]#返回字典类型
        else:#获取相应数据
            return resp.json()#返回字典类型

if __name__ == '__main__':#快捷键 Ctrl+j
    res=Login().login({"username":"20154084","password":"123456"})
    print(res)#返回双引号是json 单引号是dict
    pprint.pprint(res)

此时,可实现自动加密密码,可完成登录操作

posted @ 2021-10-06 22:27  晚风吹儿  阅读(848)  评论(0)    收藏  举报