在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

这个问题太坑了,我找了好久才找到问题所在,以下是修改的程序代码,主要问题就在于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

因为timestamp时间戳不一样吧。

python对url的“-”、“_”均做了转义处理,而postman在处理这样的字符串时,会直接忽略转义符号,导致加密的结果与Python加密的结果不一致。

原因是\的处理,如下js跟python就一致了。

window.onload = function(){
            var token = '7A4F7B99-EB5E-4885-9C70-AC9F0F0A50C4_49265'
            var timestamp = 1630637229627
            var requestParam = {
                "phone":"18144854881",
                "customerCode":"075520662307"
            }
            
            var data = CryptoJS.MD5(token).toString().toUpperCase()+timestamp +JSON.stringify(requestParam).toString();
            console.log(data);
            
            data = "C6856D5DF42579CA03564F3CBC9F32251630637229627{\"phone\": \"18144854881\", \"customerCode\": \"075520662307\"}";
            var data1 = CryptoJS.MD5(data).toString().toUpperCase();
            console.log(data1);

            //var signstr1 =(CryptoJS.MD5( CryptoJS.MD5(token).toString().toUpperCase()  
            //+timestamp +requestParam.toString())).toString().toUpperCase();
            //console.log(signstr1);
        }

问题在这个地方 postman 对这个对象转string的时候没有把值传回来

img