收藏
回答

微信支付回调req_info解密出现乱码

# python2.7

import base64
from Crypto.Cipher import AES
import hashlib

def wechat_aes_decrypt(data_encrypted, key):
    str_a = data_encrypted,
    str_b = base64.b64decode(str_a[0])

    hl = hashlib.md5()
    hl.update(key.encode(encoding='utf-8'))
    key_md5 = hl.hexdigest()
    data_xml = decrypt(str_b, key_md5)

    return data_xml


# (3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)
def decrypt(data, password):
    bs = AES.block_size
    if len(data) <= bs:
        return data
    unpad = lambda s: s[0:-ord(s[-1])]
    iv = data[:bs]
    cipher = AES.new(password, AES.MODE_ECB, iv)
    data = unpad(cipher.decrypt(data[bs:]))
    return data


python2.7, 之前使用过一段时间,可以解密,但是现在解密失败,解密后出现乱码,不知道什么原因,key值一直没有更换。哪位大神有新的见解么?

回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容
问题标签