微信公众平台/ Python2与Python3中hashlib的sha1结果不一致
程序员文章站
2023-12-22 16:11:16
...
Python2与Python3中hashlib的sha1结果不一致,编码问题
在python2中正确方法
import hashlib
token = “098iop”
lis = [token,‘1544002201’,‘129793960’]
lis.sort()
sha1 = hashlib.sha1()
map(sha1.update,lis)
hashcode = sha1.hexdigest()
print hashcode
在Python3正确的写法(微信公众号平台开发者使用)
class Handle(object):
def GET(self):
try:
data = web.input()
if len(data) == 0:
return "hello, this is handle view"
signature = data.signature
timestamp = data.timestamp
nonce = data.nonce
echostr = data.echostr
token = "098iop" # 请按照公众平台官网\基本配置中信息填写
list = [token, timestamp, nonce]
list.sort()
sha1 = hashlib.sha1()
***sha1.update("".join(list).encode('utf-8')) #python2.x与python3.x唯一区别的一句***
hashcode = sha1.hexdigest()
if hashcode == signature:
return echostr
else:
return False
except Exception as e:
_logger.error('ERROR:{}'.format(e))
return
通过hashcode == signature返回,判断输入数据来源为微信后台,匹配成功结果显示微信公众号平台【服务器配置】配置成功。