Итак, у меня был этот ранний, но удаленный, кто-то может сказать мне соответствующие функции в python, которые могут дать мне то, что мне нужно здесь. Я понимаю все это, за исключением шифрования, например, я мог бы использовать случайный модуль в python для генерации случайных байтов / строк. Я могу использовать datetime для времени, но другие вещи, которые я искал около часа сейчас без удачи, или если бы кто-то мог просто преобразовать этот код, это было бы здорово. Спасибо
Код уже пробовал. Заметьте, я просто пытаюсь соединить 2 и 2, я не могу найти какие-либо модули, которые соответствуют функциям php. Так что я использовал RSA, но я просто не чувствую, что это может быть правильно. выполнение get возвращает ключ publi c и идентификатор ключа, который используется при шифровании. Я нашел php от Gituhb.
def randomchar(n):
return "".join(random.choice(string.ascii_letters)for x in range(n))
headers = {
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
'accept-langauge': 'en-US;q=0.9,en;q=0.8,es;q=0.7',
'origin': 'https://www.instagram.com',
'referer': 'https://www.instagram.com/',
'upgrade-insecure-requests': '1',
'accept': '*/*',
'accept-encoding': 'gzip, deflate, br',
'x-requested-with': 'XMLHttpRequest',
}
r = requests.get('https://www.instagram.com/data/shared_data/', headers=headers)
dicts = r.json()
pubkey = dicts['public_key']
keyid = dicts['key_id']
realpubkey = b64decode(pubkey)
key = randomchar(32)
iv = randomchar(12)
now = datetime.datetime.now()
time = str(now.year) + "-" + str(now.month) + "-" + str(now.day)
rsa.encrypt(key, realpubkey)
public static function encryptPassword(
$password,
$publicKeyId,
$publicKey)
{
$key = openssl_random_pseudo_bytes(32);
$iv = openssl_random_pseudo_bytes(12);
$time = time();
openssl_public_encrypt($key ,$encryptedAesKey, base64_decode($publicKey));
$encrypted = openssl_encrypt($password, 'aes-256-gcm', $key, OPENSSL_RAW_DATA, $iv, $tag, strval($time));
$payload = base64_encode("\x01" | pack('n', intval($publicKeyId)) . $iv . pack('s', strlen($encryptedAesKey)) . $encryptedAesKey . $tag . $encrypted);
return sprintf('#PWD_INSTAGRAM:4:%s:%s', $time, $payload);
}