语言:Python3.6.2
解密步骤如下:
(1)对加密串A做base64解码,得到加密串B
import base64
req_info = '+Arp7Ewsvm+/NVFAk9LEBu9F4c......'
req_info_b = base64.b64decode(req_info)
(2)对商户key做md5,得到32位小写key*
import hashlib
key = 'a1b2c3......'
key_32 = hashlib.md5(key.encode('utf8')).hexdigest().lower()
(3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)
from Crypto.Cipher import AES
cryptor = AES.new(key_32.encode('utf-8'), AES.MODE_ECB)
plain_text = cryptor.decrypt(req_info_b)
打印结果为:
b'\xab\xf6\x92C\xf7\x97\xe9~7\xaa\x95\xf3\x89\xd6o\x07&+\x93\x8a<\x1d\xbc\xc0\x11Z\xee\xea\x93\xab%C\xe7\xff\xe......'
这是个什么玩意儿?没法.decode('utf8'),也转换不成微信解密的示例!!谁能告诉我怎么解密呀?
python开发者可以使用已经封装好的“微信支付 V3 API Python SDK”
https://github.com/minibear2021/wechatpayv3
我遇到了相同的问题?题主是如何解决的?
添加一下WePayTS8(备注:微信社区XXX问题)。然后发一下你的加密代码,我看看。