import base64 import hashlib import json from Crypto.Cipher import AES def decrypt_response(encrypted_data: str, date: str, token_secret: str) -> dict: # Décodage Base64 encrypted = base64.b64decode(encrypted_data) # Génération de la clé key = hashlib.sha256((date + token_secret).encode()).digest() # Génération de l'IV iv = hashlib.sha256(key).digest()[:16] # Déchiffrement AES-256-CBC cipher = AES.new(key, AES.MODE_CBC, iv) decrypted = cipher.decrypt(encrypted) # Suppression du padding PKCS7 padding_len = decrypted[-1] decrypted = decrypted[:-padding_len] return json.loads(decrypted.decode('utf-8')) # Exemple d'utilisation # pip install pycryptodome encrypted_response = "U2FsdGVkX1+abc123..." # Réponse chiffrée de l'API date = "2026-05-20 14:30:00" # Date envoyée dans la requête token_secret = "votre-token-secret" # Votre clé secrète API data = decrypt_response(encrypted_response, date, token_secret) print(data)