欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微信公众平台/ 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返回,判断输入数据来源为微信后台,匹配成功结果显示微信公众号平台【服务器配置】配置成功。
微信公众平台/ Python2与Python3中hashlib的sha1结果不一致

相关标签: 微信公众平台

上一篇:

下一篇: