# 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值一直没有更换。哪位大神有新的见解么?
python开发者可以使用已经封装好的“微信支付 V3 API Python SDK”
https://github.com/minibear2021/wechatpayv3
https://wechatpay-api.gitbook.io/wechatpay-api-v3/qian-ming-zhi-nan-1/zheng-shu-he-hui-tiao-bao-wen-jie-mi ,回调解密参考下面的示例。