• Md5


    使用场景:项目中接口测试登录接口原先是明文密码登录,改版后需要用加密密码

    询问开发得知加密规则:密码MD5加密加上时间戳整型,然后对MD5加密加上时间戳整型再进行一次加密

    自己写的代码:

        timeT = int(time.time())#获取时间戳的10位整数
        md5 = hashlib.md5()
        md5.update(password.encode(encoding='UTF-8'))
        pwd = md5.hexdigest()
        b = pwd.upper()+str(timeT) #这里由于系统对密码大小写敏感,所以需要先转换为大写再拼接
    
        md5 = hashlib.md5() #需要再次实例,否则就是对上一个字符串的叠加 具体见https://blog.csdn.net/moxiajuzi/article/details/53040845
        md5.update(b.encode(encoding='UTF-8'))
        a= md5.hexdigest()
        newpwd = a.upper()#这里由于系统对密码大小写敏感,所以需要先转换为大写
    
        loginData = {
            "Name": username,
            "Password": newpwd,
            "isWeekPassword":0,
            "timestamp":timeT
        }

    优化后代码:

     timestamp = int(time.time())
        newPassword = MD5(MD5(password) + str(timestamp))#  MD5见下面toos封装代码
    
        loginData = {
            "name": username,
            "password": newPassword,
            "timestamp": timestamp,
            "isWeekPassword": 0
        }

    在工具tools下封装

    def MD5(Str):
        """
        根据传入的string生成对应的MD5加密字符
        :param Str: 
        :return: 
        """
        md5 = hashlib.md5()
        md5.update(Str.encode(encoding = 'UTF-8'))
    
        md5Result = md5.hexdigest()
    
        return md5Result.upper()
  • 相关阅读:
    XNA之3D文字
    SQL2005调用C#编写的DLL
    C#绘图工具之Rotate
    ASP.NET中的WebService
    数据库同步之复制技术
    C#之TCP消息的发送和接受
    Tsql清空表数据的两种方式truncate and delete
    Code First Migrations数据迁移方法
    MSSQLSERVER跨服务器连接
    windows下wget命令行下载工具的使用
  • 原文地址:https://www.cnblogs.com/dieyaxianju/p/9548969.html
Copyright © 2020-2023  润新知