php код до python (соответствующие функции) для шифрования - PullRequest
1 голос
/ 24 января 2020

Итак, у меня был этот ранний, но удаленный, кто-то может сказать мне соответствующие функции в 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);
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...