Функция хеширования для сокращения 8-байтового уникального идентификатора до 4 байт в C - PullRequest
0 голосов
/ 12 октября 2018

Мне нужно выбрать функцию хеширования для преобразования уникального 8-байтового идентификатора в 4-байтовый идентификатор (настолько уникальный, насколько это возможно) на 12-битном микроконтроллере (MSP430) в C.

Что такое хэшированиефункцию вы бы предложили?

Я нашел некоторые функции здесь , но я не знаю, какую из них выбрать.

Обновление : вотстарый аналогичный вопрос с указанием исходного уникального формата идентификатора: Хеширование 64-битного значения в 32-битный MAC-адрес

Обновление 2:

 RSHash((const uint8_t*)ID_8BYTE, 8); 

uint32_t RSHash(const uint8_t* key, unsigned int len)
{
   uint32_t b    = 378551;
   uint32_t a    = 63689;
   uint32_t hash = 0;
   uint32_t i    = 0;

   for(i = 0; i < len; key++, i++)
   {
      hash = hash * a + (*key);
      a    = a * b;
   }

   return hash;
}
...