Как прочитать этот hmackey для ардуино?

Я понимаю, что пример HMAC с SHA256 предоставляет набор ключей: (https://github.com/Cathedrow/Cryptosuite/blob/master/Sha /examples/hmacsha256test/hmacsha256test.pde)

#include "sha256.h"
uint8_t hmacKey1[]={
  0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
};
uint8_t hmacKey2[]={
  0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,
0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19
};
...

Я провел небольшое исследование и понял, что эти ключи имеют шестнадцатеричную форму с добавлением 0x в качестве префикса. Если я хочу использовать свой собственный ключ, например строку abece123*, нужно ли мне просто преобразовать строку ключа в шестнадцатеричный формат?

Я попытался использовать этот сайт ниже, чтобы преобразовать hmacKey2 выше, чтобы посмотреть, как может выглядеть ключ. Но результат не узнаваем. Вот что я сделал: скопировал и вставил

0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,
0x0f,0x10,0x11,0x12,0x13,0x14, 0x15,0x16,0x17,0x18,0x19

на сайт ниже для преобразования в строку. https://codebeautify.org/hex-string-converter

Я новичок в этой области. Пожалуйста, помогите мне понять, как работают эти клавиши, а также шаги, необходимые для замены одной из предустановленных клавиш hmac моей собственной строкой ключей (например, abece123*). Спасибо.

, 👍1


1 ответ


Лучший ответ:

1

Это примеры ключей. Вам нужен один ключ, и вы можете выбрать любой текст любой длины.

Вы видели эту строку в примере:

sha.initHmac((uint8_t*)"Jefe",4);

Он использует ключ «Jefe» длиной 4.
Вы можете использовать свой собственный ключ, но вам также нужна длина.

char myKey[] = "abece123*";
int length = strlen(myKey);
sha.initHmac((uint8_t*)myKey, length);
,

Да, я тоже нашел это позже. Спасибо за внимание., @Harry

Теперь, когда мы знаем ваш ключ, больше не используйте «abece123*». Например, вы можете использовать полное предложение, которое вы можете запомнить и которое имеет длину (например, более 20 байт)., @Jot

Да, это будет моим следующим вопросом. И здесь есть обсуждение: https://security.stackexchange.com/questions/95972/what-are-requirements-for-hmac-secret-key/96176. Для этого я воспользуюсь генератором паролей. Хотя я не могу сказать, насколько он безопасен, поскольку нет инструмента, позволяющего проверить, можно ли его взломать., @Harry

Иногда я придумываю сказочную историю, совершенно не похожую на другие пароли. Например: «жила-была голубая луна и ела печенье», с заглавными буквами или без них, с пробелами или без них., @Jot