zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    Redis源码阅读笔记(2)——字典(Map)实现原理
    Partition List ——LeetCode
    docker format (golang template)
    markdown 换行
    pecan快速教程
    nvdimm
    k8s device plugin
    linux 文件同步
    复制MIFARE Classic卡
    install docker swarm on centos
  • 原文地址:https://www.cnblogs.com/dieyaxianju/p/9548969.html
Copyright © 2011-2022 走看看