WXBizDataCrypt.py 581 B

12345678910111213141516171819202122
  1. import base64
  2. import json
  3. from Crypto.Cipher import AES
  4. class WXBizDataCrypt:
  5. def __init__(self, sessionKey):
  6. self.sessionKey = sessionKey
  7. def decrypt(self, encryptedData, iv):
  8. sessionKey = base64.b64decode(self.sessionKey)
  9. encryptedData = base64.b64decode(encryptedData)
  10. iv = base64.b64decode(iv)
  11. cipher = AES.new(sessionKey, AES.MODE_CBC, iv)
  12. decrypted = json.loads(self._unpad(cipher.decrypt(encryptedData)))
  13. return decrypted
  14. def _unpad(self, s):
  15. return (s[:-ord(s[len(s)-1:])]).decode('utf-8')