BASE64URL-ENCODE(SHA256(ASCII(code_verifier))) = code_challenge
Добрый День.
Для работы с сервисом банка нужно получить code_challenge по формуле BASE64URL-ENCODE(SHA256(ASCII(code_verifier))), где code_verifier -случайная числовая последовательность от 43 до 128 символов.
В инструкции, которую банк предлагает, есть тестовый code_verifier - dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk, а тестовые code_challenge - E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM.
Я попытался средствами 1с8.3 получить тестовые значения code_verifier и code_challenge, но что ничего не получается. не пойму в чем дело.
Подскажите как в 1с8.3 при заданном code_verifier (dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk) получить по формуле получить code_challenge (E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM). Спасибо.
Для работы с сервисом банка нужно получить code_challenge по формуле BASE64URL-ENCODE(SHA256(ASCII(code_verifier))), где code_verifier -случайная числовая последовательность от 43 до 128 символов.
В инструкции, которую банк предлагает, есть тестовый code_verifier - dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk, а тестовые code_challenge - E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM.
Я попытался средствами 1с8.3 получить тестовые значения code_verifier и code_challenge, но что ничего не получается. не пойму в чем дело.
Подскажите как в 1с8.3 при заданном code_verifier (dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk) получить по формуле получить code_challenge (E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM). Спасибо.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Добрый день!
Искал решение своей проблеме, нашел ваш вопрос без ответа.
Base64 отличается от Base64url, заменой нескольких символов.
Искал решение своей проблеме, нашел ваш вопрос без ответа.
Base64 отличается от Base64url, заменой нескольких символов.
Функция Base64urlВСтроку(Знач СтрокаBase64)
Пока СтрДлина(СтрокаBase64) % 4 <> 0 Цикл
СтрокаBase64 = СтрокаBase64+ "=";
КонецЦикла;
СтрокаBase64 = СтрЗаменить(СтрокаBase64, "-", "+");
СтрокаBase64= СтрЗаменить(СтрокаBase64, "_", "/");
Возврат Base64Значение(СтрокаBase64);
КонецФункции
Показать
(3)
Как-то так.
ВходнаяСтрока = "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk";
Хэш = Новый ХешированиеДанных(ХешФункция.SHA256);
Хэш.Добавить(ВходнаяСтрока);
СтрокаBase64 = Base64Строка(Хэш.ХешСумма);
СтрокаBase64 = СтрЗаменить(СтрокаBase64, "=", "");
СтрокаBase64 = СтрЗаменить(СтрокаBase64, "+", "-");
СтрокаBase64 = СтрЗаменить(СтрокаBase64, "/", "_");
ВыходнаяСтрока = СтрокаBase64;
ПоказатьКак-то так.
(4) Спасибо!
Может еще кому-то пригодится:онлайн генерация codeChallenge из codeVerifier для тестирования
Может еще кому-то пригодится:
Мучаюсь с приорбанком уже месяц, поддержка ни как не помогает на все вопросы получаю ответ: на нашей стороне все запросы ок. Застрял на этапе получения токена для авторизации.
На первой стадии мы формируем запрос на получение Code. Пользователю демонстрируется веб поле в котором он может ввести логин, пароль и после авторизации подтвердить разрешение.
Далее пользователя переадресовывает на call back url, который у нас реализован в виде http сервиса, мы получаем код и формируем запрос из этого сервиса для получения токена. В ответ получаем код ответа 500. Тело получаем такое:
{"error": {"code": "serverError","message": "Internal Server Error."}}
На первой стадии мы формируем запрос на получение Code. Пользователю демонстрируется веб поле в котором он может ввести логин, пароль и после авторизации подтвердить разрешение.
Далее пользователя переадресовывает на call back url, который у нас реализован в виде http сервиса, мы получаем код и формируем запрос из этого сервиса для получения токена. В ответ получаем код ответа 500. Тело получаем такое:
{"error": {"code": "serverError","message": "Internal Server Error."}}
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот