Как закодировать слово HMAC-SHA512?

  • Автор темы Автор темы AloneSlamer
  • Дата начала Дата начала
  • Спасибо
Реакции: russya
https://social.msdn.microsoft.com/F...using-hmac-algorithm-in-c?forum=csharpgeneral

тут есть нужный код, скопируйте то что относится к 512 битному шифрованию и будет щщастье там строчек 10
спасибо!

может еще подскажете, читаю инструкцию https://exmo.com/ru/api_doc#/authenticated_api , но не могу разобраться http://joxi.ru/a2XQjPJt1M8BRA
получается беру кеу, вставляю в заголовки, беру строку param=val&param1=val1 и кодирую ее секретным ключем в 512 и вставляю код в заголовок что получился. Там еще какое-то nonce не могу понять куда его. Может кто-то делал похожее, подскажите
 
Последнее редактирование:
я делал, но не на зенке, сигн это как бы дополнительная верификация
т.е. у вас будет какой то такой запрос
site.ru?key=1234&param=1&param2=2&sign=512hash(param=1&param2=2, secretkey)

ну надеюсь понятно что я тут завернул
т.е. кроме параметров вы еще передаете её подпись, которая представляет из себя те же параметры просто закодированные вашим секретным ключом. Когда сервак получает ваш запрос он тоже проводит такую процедуру и сравнивает подписи, если они совпадают значит все ок и можно выполнять. Фишка в том, что если у вас перехватят один запрос - то нифига не получится сделать второй с другими инструкциями
 
{"result":false,"error":"Error 40003: Authorization error, http header 'Key' not specified"}
все равно не выходит http://joxi.ru/eAO18jnCxdwJjm
 
Вот код, ничего сложного, подгружайте в метод секретный ключ и тело сообщения, метод вернёт закодированный запрос.
Кажется я догадываюсь, для какой это соц. сети)
Код:
Развернуть Свернуть Копировать
static string markerPodpisi(string strKey, string date)
        {

            HMACSHA512 hma = new HMACSHA512();
            hma.Key = Encoding.ASCII.GetBytes(strKey);
            byte[] hash = hma.ComputeHash(Encoding.ASCII.GetBytes(date));

            return BitConverter.ToString(hash).Replace("-", "").ToLower();
        }
 
Последнее редактирование:
мне для exmo нужно, хочу поторговать криптовалютой. С кодировкой я разобрался, только как запрос отправлять не могу понять https://exmo.com/ru/api_doc#/authenticated_api
 
Код:
Развернуть Свернуть Копировать
https://api.exmo.com/v1/user_info?key=K-f048f803426f492308246b245fd341421df1&param=val&param1=val1&sign=6ad6c5e186adfa84e5e50e2786e3efc127fbbcc3a3e2d0bda2042a10c5e239b6caf73b7f21ec0cfcfd3ab3da4990c2e9a7024527fceb87005eec8c561990a195&nonce=1

ответ
Код:
Развернуть Свернуть Копировать
{"result":false,"error":"Error 40003: Authorization error, http header 'Key' not specified"}

что я делаю не так? почему ошибка и такай же алгоритм на всех биржах
 
ну значит вы передаете какой то заголовок Key который системой не принимается
 
ну key я взял с сайта. Может этот кеу нужно не в ссылке передавать а вместе с юзерагентом, в том же поле.
 
может еще подскажете, читаю инструкцию https://exmo.com/ru/api_doc#/authenticated_api , но не могу разобраться http://joxi.ru/a2XQjPJt1M8BRA
получается беру кеу, вставляю в заголовки, беру строку param=val&param1=val1 и кодирую ее секретным ключем в 512 и вставляю код в заголовок что получился. Там еще какое-то nonce не могу понять куда его. Может кто-то делал похожее, подскажите
Нонсе - это числовое значение которое у каждого нового запроса должно быть больше предыдущего. Варианты решения - взять число от 1 и при каждом запросе увеличивать, сохраняя при увеличении и подгружая из файла при запуске бота. Второй вариант - использовать в качестве nonce дату время в формате unixtime.

С подписью чуть сложнее. Сначала формируем запрос, потом от этого запроса получаем ша-512 хэш от секрета. Потом в заголовки добавляем подпись и ключ.

И вопрос на засыпку, а зачем вы это делаете с нуля на шарпе, если сам эксмо уже предоставляет готовый шарповый апи?
https://github.com/exmo-dev/exmo_api_lib/tree/master/c#
 
Нонсе - это числовое значение которое у каждого нового запроса должно быть больше предыдущего. Варианты решения - взять число от 1 и при каждом запросе увеличивать, сохраняя при увеличении и подгружая из файла при запуске бота. Второй вариант - использовать в качестве nonce дату время в формате unixtime.

С подписью чуть сложнее. Сначала формируем запрос, потом от этого запроса получаем ша-512 хэш от секрета. Потом в заголовки добавляем подпись и ключ.

И вопрос на засыпку, а зачем вы это делаете с нуля на шарпе, если сам эксмо уже предоставляет готовый шарповый апи?
https://github.com/exmo-dev/exmo_api_lib/tree/master/c#
Я C# плохо знаю, хочу на зенке реализовать
 
Ребята, кто проблему с авторизацией на exmo_api решил? Подскажите как
 

Вложения

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)