收藏
回答

python 解密unionid失败?

按照官方提供的python解密小程序unionid demo 报错 'utf-8' codec can't decode byte 0xba in position 1 :invalid start byte

尝试了将解密结果decode ,同样报错

尝试了各种编码方式,gbk,iso等都报错

def decrypt(self, encryptedData, iv):
        try:
            sessionKey = base64.b64decode(self.sessionKey)
            encryptedData = base64.b64decode(encryptedData)
            iv = base64.b64decode(iv)
            cipher = AES.new(sessionKey, AES.MODE_CBC, iv)
            decrypted = json.loads(self._unpad(cipher.decrypt(encryptedData)))
            if decrypted['watermark']['appid'] != self.appId:
                raise Exception('Invalid Buffer')
            return decrypted
        except Exception as err:
            print(str(err))
        


    def _unpad(self, s):
        return s[:-ord(s[len(s)-1:])]
回答关注问题邀请回答
收藏

1 个回答

  • Storm侯晨阳
    Storm侯晨阳
    2021-05-07

    这个问题我已经解决了, 不是编码格式的问题,需要先检查一下session_key是否已经过期?可以用wx.check_seesion这个方法检查一下,在回调中再去执行login方法,不然可能会遇到你拿到的session_key不是加密的那个session_key,就会一直报错。

    2021-05-07
    有用
    回复
登录 后发表内容
问题标签