M测试官 2021-09-03 12:18 采纳率: 25%
浏览 441
已结题

在postman使用MD5加密出来的结果与使用python加密出来的结果不一致?

在postman使用MD5加密出来的结果与使用python加密出来的结果不一致?

var token = '7A4F7B99-EB5E-4885-9C70-AC9F0F0A50C4_49265'
var timestamp = 1630637229627
var requestParam = {
    "phone": "18144854881",
    "customerCode": "075520662307"
}
var signstr1 =(CryptoJS.MD5( CryptoJS.MD5(token).toString().toUpperCase()  +timestamp +requestParam.toString())).toString().toUpperCase();

我在postman加密出来的结果为:2F3B8F32080BD44750E7921E2CDBA484 和我使用python的MD5库加密出来的结果不一致;
上面的 requestParam是直接使用 request.data获取得到的请求数据,timestamp为Math.round(new Date().getTime());获取得到的,有人知道怎么使用python转换的吗?
postman如下图:

img

img

  • 写回答

5条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2021-09-07 05:51
    关注

    这个问题太坑了,我找了好久才找到问题所在,以下是修改的程序代码,主要问题就在于request.data这里

    img

    img

    所以这个位置,看似一样,其实本质还是不同。

    希望能能够采纳支持,谢谢!!!

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    """
    @author: Roc-xb
    """
    
    import hashlib
    
    def MD5(data):
        m = hashlib.md5()
        m.update(data.encode('utf-8'))
        return m.hexdigest()
    
    if __name__ == '__main__':
        token = '7A4F7B99-EB5E-4885-9C70-AC9F0F0A50C4_49265'
        timestamp = "1630637229627"
        requestParam = "{\r\n    \"phone\": \"18144854881\",\r\n    \"customerCode\": \"075520662307\"\r\n}"
        sign = str(MD5(str(MD5(token)).upper() + timestamp + requestParam)).upper()
        print("sign:",sign)
    

    程序运行结果:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月16日
  • 已采纳回答 9月8日
  • 赞助了问题酬金 9月4日
  • 修改了问题 9月4日
  • 展开全部

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系