В общем есть строка (просто пример):
{"data":"ZbGOHhmbCr6SaaQUdMR7cMTXShhzlzpWVqXHA==","iv":"5y1WPN7nqaahg==","salt":"TaKtjVSlsplJKyKn0FzGrJ42BowgeFFssSx1k="}'
Для дешифровки этой строки есть вот такой код
import json
try:
data = json.loads(info)
password = passwd
salt = base64.b64decode(data['salt'])
vault = base64.b64decode(data['data'])
iv = base64.b64decode(data['iv'])
except:
return None
key = hashlib.pbkdf2_hmac('sha256', password.encode('utf-8', 'ignore'), salt, 10000, 32)
from Crypto.Cipher import AES
decrypted_block = AES.new(key, AES.MODE_GCM, nonce=iv).decrypt(vault)
try:
if decrypted_block.decode('utf-8', 'ignore').__contains__('"findThis":"'):
something = decrypted_block.decode('utf-8', 'ignore').find('"findThis":"') + 12
something2 = decrypted_block.decode('utf-8', 'ignore').find('","numberOfAccounts"') - 43
decryptedData = decrypted_block.decode('utf-8', 'ignore')[something:][:something2]
return {'data': decryptedData, 'password': passwd}
else:
return None
except:
return None
Я пытался сделать Брутфорсер, но он может перебрать 100-500 паролей в секунду да и в питоне очень плохо разбираюсь, есть-ли вариант как это все дело ускорить до нескольких миллионов комбинаций в секунду как тут
https://github.com/sebastien-riou/aes-brute-force