бросается в глаза CP_ACP, когда сервера классически считают что должен быть UTF8..хотя для первых 128 ASCII разницы вроде-бы нет
и между & вы пропускаете со страшной силой :-)
1. как понял выделенное, имеется ввиду символ & в строке сообщений, это как раз для наглядности-простоты примера, первые две строки - там один раз пропущено &,так требует отправлять параметры биржа, если часть в url , а часть в теле запроса, а во второй это я от балды удалил & чтобы создать третий пример :-)
2. насчёт CP_ACP спасибо, думал в эту сторону, ох и не люблю эти вещи, неужели нельзя было подумать чуть наперёд и придумать юникод сразу в 50-х, умные вроде дядьки же были)))
3. а ошибку нашёл и пофиксил уже, после поста осенило какие ещё тесты сделать и докопался. Может кстати и связано с UTF8, до конца не понял, см.п.2. :-)
1. как понял выделенное, имеется ввиду символ & в строке сообщений, это как раз для наглядности-простоты примера, первые две строки - там один раз пропущено &,так требует отправлять параметры биржа, если часть в url , а часть в теле запроса, а во второй это я от балды удалил & чтобы создать третий пример :-)
2. насчёт CP_ACP спасибо, думал в эту сторону, ох и не люблю эти вещи, неужели нельзя было подумать чуть наперёд и придумать юникод сразу в 50-х, умные вроде дядьки же были)))
3. а ошибку нашёл и пофиксил уже, после поста осенило какие ещё тесты сделать и докопался. Может кстати и связано с UTF8, до конца не понял, см.п.2. :-)
помнится есть ещё проблемы с завершающим \0 - он включается в результат StringToCharArray, но в подсчёт HMAC не должен попадать
помнится есть ещё проблемы с завершающим \0 - он включается в результат StringToCharArray, но в подсчёт HMAC не должен попадать
верно, это я ранее выяснил, кстати я бы на месте разработчиков в справку по функции это прям дописал, важный же момент.
а в моём случае оказалось тоже всё просто - Sha256 может выдавать 0 в хеше, поэтому конвертация в строку неприемлема, только в хХХ hex вид в самом конце.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую, коллеги.
Соорудил функцию для HMAC sha256, сами знаете для чего)
Ниже код, демонстрирующий работу и ошибку. В двух случаях результат совпадает с онлайн-сервисами (также ещё проверка - два примера взяты из документации по АПИ известной крипто биржи), в третьем нет.
Можно менять строку сообщения, результат будет то совпадать то нет, чаще вроде совпадает.
Никак не пойму как локализовать косяк и в чём вообще может быть затык) если была бы ошибка в алгоритме sha или hmac результат был бы неверный всегда, если бы не учитывался терминальный ноль и т.п. аналогично.
Как в зависимости от строки ошибка то проявляется то нет, голову сломал не пойму, помогите.
проверял тут https://www.liavaag.org/English/SHA-Generator/HMAC/
саму хеш-функцию sha256 проверял тут http://www.sha1-online.com/