zoukankan      html  css  js  c++  java
  • python对接口中的数据进行md5加密

    最近有学员向笔者多次反应,测试过程中,比如登录,登录时密码一般是经过加密之后进行登录的,如果在进行测试时填写的密码是明文的话,那么进行接口测试时必然是失败的,那么要经过怎样的处理才能登录成功呢?

    那么今天先简单处理密码是md5加密的情况下,使用python进行接口测试时,python如何处理;

    当前使用的是python3.7版本;

    Python3.7在处理md5加密时,需要导入模块hashlib;

    pythonhashlib提供了常见的摘要算法,如MD5,SHA1等等。

    先来看一下python是如何把字符串加密成MD5字符串的;

    import hashlib

    def MD5_demo(str):
        md= hashlib.md5()# 创建md5对象
        md.update(str.encode(encoding='utf-8'))
        return md.hexdigest()

    if __name__=="__main__":
        # 待加密信息
        str = '123456'
        md5_str = MD5_demo(str)
        print('加密后为 :' + md5_str)

    hexdigest()在英语中hex有十六进制的意思,因此该方法是返回摘要,作为十六进制数据字符串值

    注意:update(str.encode(encoding='utf-8'))这个函数里面需要对字符串进行编码,否则会报TypeError: Unicode-objects must be encoded before hashing

    下面以禅道登陆接口为例进行处理:

    通过fiddler抓包发现,登陆的密码是加密处理的:

     

    以下是代码处理结果:

    import requests
    import hashlib

    def MD5_login(str):
        zt_pwd = hashlib.md5()
        zt_pwd.update(str.encode(encoding='utf-8'))
        return zt_pwd.hexdigest()

    password = '123456' #登陆的用户密码=='123456'
    url = 'http://192.168.1.105:81/zentao/user-login-L3plbnRhby8=.html'
    data = {'account':'admin','password':MD5_login(password),'referer':'/zentao/'}
    response = requests.post(url,data=data) # 发送post请求
    print(response.content.decode('utf-8'))

  • 相关阅读:
    C++笔记-智能指针 shared_ptr
    Linux笔记-性能调优工具perf
    git submodule 如何push代码
    性能测试工具gperftools使用
    Linux信号使用及自定义信号
    DNN在推荐系统中的应用参考资料
    vscode远程代码同步
    感知机模型到DNN模型
    c++笔记-libcurl多线程并发时的core【转载】
    go笔记-熔断器
  • 原文地址:https://www.cnblogs.com/luoman/p/12458591.html
Copyright © 2011-2022 走看看