首先保证亲测可用,代码如下: from hashlib import sha256 import hmac def get_sign(key, data): #sha256加密有2种 # hsobj = sha256(key.encode("utf-8")) # hsobj.update(data.encode("utf-8")) # print(hsobj.hexdigest().upper()) data = data.encode('utf-8') print(hmac.new(key.encode('utf-8'), data, digestmod=sha256).hexdigest().upper()) key='1546084445901' data='testappSecret' # get_sign(key,data) get_sign(data,key)
注意点:
1、key、data参数不要反了;
2、hexdigest表示加密字符串转化成16进制;
3、python3里sha256有两种,hmac.new的结果才是符合要求的。
当输出结果是16进制,但与目标值不一致查下key、data参数是不是填反了。这一点坑了我好久