Задать вопрос

Как расшифровать правильно данные?

Есть запрос на https://fapi.coinglass.com/api/coin/liq/heatmap?ti... в ответ получаю зашифрованный json:
{
    "code": "0",
    "msg": "success",
    "data": "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",
    "success": true
}

На странице https://www.coinglass.com/LiquidationData данные расшифровываются и показываются в читабельном виде.
Насколько я понял, шифруется всё в AES, и на уровне клиента с помощью JS расшифровывается. В файле https://aws-s3.coinglasscdn.com/cg_v3/_next/static... нашел на сколько я понимаю код, который расшифровывает данные из "data":
t5.interceptors.response.use(function(t) {
            if (t.timeout = 3e4,
            200 != t.status)
                throw Error("error");
            if (t.headers.user && t.headers.encryption) {
                var e = ei(t.config.url)
                  , n = btoa("coinglass".concat(e, "coinglass"));
                n = n.substring(0, 16),
                n = er(t.headers.user, n);
                var r = er(t.data.data, n);
                (function(t) {
                    if ("string" == typeof t)
                        try {
                            var e = JSON.parse(t);
                            if ("object" == i(e) && e)
                                return !0;
                            return !1
                        } catch (n) {
                            return !1
                        }
                }
                )(r) ? t.data.data = JSON.parse(r) : t.data.data = r
            }
            return t
        }, 

er = function(t, e) {
            var n = en(ee.AES.decrypt(t, ee.enc.Utf8.parse(e), {
                mode: ee.mode.ECB,
                padding: ee.pad.Pkcs7
            }).toString(ee.enc.Hex));
            return '"' == n.charAt(0) && (n = n.substring(1, n.length)),
            '"' == n.charAt(n.length - 1) && (n = n.substring(0, n.length - 1)),
            n
        }

Далее не хватает компетенции понять, как расшифровывать входящий json. Помогите пожалуйста и наведите на правильное решение..

P.S. - Копаюсь для личного пользования и интереса, воровать ни у кого ничего не собираюсь, бесплатно раздавать тоже. Лично в своих целях.
  • Вопрос задан
  • 773 просмотра
Подписаться 3 Простой 6 комментариев
Решения вопроса 1
2ord
@2ord
Если вкратце, то нужно поставить точку останова в нужной строке, трассировать и смотреть что, когда и куда приходит.
Пробуй, экспериментируй. Инструкторов на этом ресурсе искать нет смысла.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы