Как сгенерировать uuid v3 по протоколу - PullRequest
0 голосов
/ 25 марта 2020

У меня есть все данные, я не могу понять, как их кодировать в uuid. Я нашел функцию, которая генерирует случайным образом, но это немного помогает.

    function uuidv4 () {
      return ([1e7] + - 1e3 + -4e3 + -8e3 + -1e11) .replace (/ [018] / g, c =>
        (c ^ crypto.getRandomValues ​​(new Uint8Array (1)) [0] & 15 >> c / 4) .toString (16)
      )
    }

    console.log (uuidv4 ());

Все должно быть реализовано на чистом js без подключения библиотек.

Uuid v3 используется для генерации mdlpRequestId документ. NameSpace_DNS используется в качестве пространства имен. Для генерации mdlpRequestId формируется массив, состоящий из следующих данных:

Время в секундах с 1 января 1970 года, UnixTime, функция time ();

Время в наносекундах с момента PB была включена функция clock_gettime (CLOCK_REALTIME, & t), где «время в наносекундах» = t.tv_nse c.

Если невозможно получить время в наносекундах, оно заменяется случайно сгенерированным числом;

serial number of MB RV;
random number generated by PB
...