Чтобы проверить данные, поступающие из API безопасного просмотра Google , вы можете рассчитать код аутентификации сообщений (MAC) для каждого обновления. Инструкции для этого (от Google):
MAC вычисляется из дайджеста MD5
по следующей информации:
client_key | Сепаратор | таблица
данные | Сепаратор | client_key.
разделитель строки: coolgoog: -
это двоеточие, за которым следует «coolgoog»
с последующим двоеточием. Результирующий
128-битный MD5-дайджест является веб-базой Base-64
закодированный.
Также есть пример данных для проверки:
client key: "8eirwN1kTwCzgWA2HxTaRQ=="
Ответ:
[goog-black-hash 1.180 update][mac=dRalfTU+bXwUhlk0NCGJtQ==]
+8070465bdf3b9c6ad6a89c32e8162ef1
+86fa593a025714f89d6bc8c9c5a191ac
+bbbd7247731cbb7ec1b3a5814ed4bc9d
*Note that there are tabs at the end of each line.
Я не могу получить совпадение. Пожалуйста, укажите, где я ошибаюсь, или просто напишите пару строк кода Python, необходимых для этого!
FWIW, я ожидал, что смогу сделать что-то вроде этого:
>>> s = "+8070465bdf3b9c6ad6a89c32e8162ef1\t\n+86fa593a025714f89d6bc8c9c5a191ac\t\n+bbbd7247731cbb7ec1b3a5814ed4bc9d\t"
>>> c = "8eirwN1kTwCzgWA2HxTaRQ=="
>>> hashlib.md5("%s%s%s%s%s" % (c, ":coolgoog:", s, ":coolgoog:", c)).digest().encode("base64")
'qfb50mxpHrS82yTofPkcEg==\n'
Но, как вы видите, 'qfb50mxpHrS82yTofPkcEg == \ n'! = 'DRalfTU + bXwUhlk0NCGJtQ =='.