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

在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日
  • 展开全部

悬赏问题

  • ¥15 VB.NET2022如何生成发布成exe文件
  • ¥30 matlab appdesigner私有函数嵌套整合
  • ¥15 给我一个openharmony跑通webrtc实现视频会议的简单demo项目,sdk为12
  • ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
  • ¥30 vb net 使用 sendMessage 如何输入鼠标坐标
  • ¥15 关于freesurfer使用freeview可视化的问题
  • ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
  • ¥15 求SC-LIWC词典!
  • ¥20 有关esp8266连接阿里云
  • ¥15 C# 调用Bartender打印机打印