Блог им. elektroyar

Расчет HMAC в С++

Расчет HMAC в С++


Всем привет! Продолжаем курс велосипедостроения. И на этот раз зачем-то решил  сделать простенький алгоритм расчета HMAC для SHA256 и SHA512. А то иногда бывает нужно подключить какую нибудь криптобиржу, а там нужен этот самый HMAC. Вот ссылка на репозиторий самой либы.

Для расчета HMAC надо вызвать функцию get_hmac, которая имеет несколько параметров:

std::string get_hmac(
	std::string key, 
	const std::string &msg, 
	const TypeHash type, 
	const bool is_hex = true, 
	const bool is_upper = false);
  • key — Строка, содержащая секретный ключ.
  • msg — Строка, содержащая сообщение.
  • type — Тип хеш-функции. Указать hmac::TypeHash::SHA256 или hmac::TypeHash::SHA512.
  • is_hex — Флаг, который отвечает за формат ответа. Чтобы получить строку, содержащую HMAC в шестнадцетиричном формате, данный параметр должен быть указан как true. Иначе строка будет содержать числовое значение HMAC по 8 бит в каждом элеименте строки. По умолчанию данный параметр true.
  • is_upper — Флаг, который отвечает за регистр символов ответа (нижний или верхний). Данный флаг влияет на ответ функции только если установлен флаг is_hex. По умолчанию данный параметр false.
Простой пример кода для расчета HMAC SHA256 и SHA512:
#include <iostream>
#include <hmac.hpp>

int main() {
    std::string input("grape");
    std::string key("12345");
	
    /* проверяем работу HMAC SHA256 */
    std::string output1 = hmac::get_hmac(key, input, hmac::TypeHash::SHA256);
    std::cout << "get_hmac('"<< key << "','" << input << "',SHA256): " << output1 << std::endl;
    std::cout << "The answer should be: "
        "7632ac2e8ddedaf4b3e7ab195fefd17571c37c970e02e169195a158ef59e53ca"
        << std::endl << std::endl;

    /* проверяем работу HMAC SHA512 */
    std::string output2 = hmac::get_hmac(key, input, hmac::TypeHash::SHA512);
    std::cout << "get_hmac('"<< key << "','" << input << "',SHA512): " << output2 << std::endl;
    std::cout << "The answer should be: "
        "c54ddf9647a949d0df925a1c1f8ba1c9d721a671c396fde1062a71f9f7ffae5dc10f6be15be63bb0363d051365e23f890368c54828497b9aef2eb2fc65b633e6"
        << std::endl << std::endl;
	return 0;
}

На этом собственно пока все. Также скоро выйдет в свет библиотека с готовыми бинарниками (без регистрации и СМС) для связки МТ4 и Binance.

  • Ключевые слова:
  • C++
613 | ★1
3 комментария
Я тоже начинал с С++.
А потом покатился, деньги, биржа, квартира в Испании, дешевый виски без акцизных наценок заботливого государства.

Дети, не делайте так.
Идите на завод.
Лучше на Николаевский судостроительный завод (там раньше атомные крейсеры производили, а теперь — печки-буржуйки).
Все равно распилят, а так хоть вам достанется.


P.S. Кстати, а get_hmac — оно будет в консоли и в неуправляемом коде?
Да, удобно.
avatar

Nothing Personal, 

P.S. Кстати, а get_hmac — оно будет в консоли и в неуправляемом коде?

Ога)

avatar

Читайте на SMART-LAB:
Обновление кредитных рейтингов в ВДО и розничных облигациях (ПАО "ЕвроТранс" снижен до CC.ru от НКР и до СС|ru| от НРА | АО "ГЛАВСНАБ" присвоен статус "Под наблюдением")
🔴 ООО «СУЭК-Финанс» Эксперт РА понизил рейтинг кредитоспособности до уровня ruA-. Ранее у компании действовал рейтинг на уровне ruА+ Оценка...
Инвестиции без спешки: торгуем в выходные
Алексей Девятов Рынок часто движется импульсами, тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят...
Фото
Совет директоров ПАО «ЭсЭфАй» рекомендовал финальные дивиденды за 2025 год в размере 172 рублей на акцию
10 апреля 2026 года состоялось заседание совета директоров ПАО «ЭсЭфАй». Совет директоров среди других вопросов повестки дня рассмотрел вопрос...
Фото
ДВМП: результаты в рамках прогноза, но и цена близка к целевой - будет ли выкуп миноров из-за объединения Росатома с DP World?
ДВМП отчитался за 2025 год: 2,3 млрд рублей убытка для акционеров за 2025 год Традиционно сравниваю со своим прогнозом и делюсь...

теги блога elektroyar

....все тэги



UPDONW
Новый дизайн