Что такое глобально-уникальный идентификатор - GUID ?

Глобально-уникальный идентификатор (GUID) — это уникальный номер, используемый в качестве идентификатора в программном обеспечении. Идентификаторы GUID используются в различных приложениях, например в Microsoft Windows, для идентификации интерфейсов, ссылок и других данных.

Идентификаторы GUID обычно представляют собой 128-битные целые числа, которые генерируются случайным образом, гарантируя, что они уникальны на всех устройствах и в любое время.

Идентификаторы часто представляются в виде 32 шестнадцатеричных цифр, отображаемых в пяти группах, разделенных дефисами. Например: 12345678-11234-11234-11234-myrusakov89012.

GUID-идентификаторы используются в различных приложениях, поскольку они обеспечивают удобный и надежный способ уникальной идентификации объектов, таких как, например, покупатели, продукты или транзакции. Они часто используются в качестве первичных ключей в базах данных.

Вероятность того, что два GUID-идентификатора будут одинаковыми, чрезвычайно мала, так как существует 2 ^ 128 (3,4 x 10 ^ 38) возможных GUID-идентификаторов.

Чтобы представить насколько это много, скажем, что в наблюдаемой вселенной насчитывается примерно 10 ^ 80 атомов. Это означает, что вероятность совпадения двух идентификаторов примерно эквивалентна вероятности нахождения двух конкретных атомов из всех атомов во вселенной.

На практике крайне маловероятно (но не исключено совсем), что два GUID-идентификатора когда-либо будут одинаковыми, даже если миллиарды идентификаторов генерируются каждую секунду. Это делает GUID отличным выбором для использования в качестве уникальных идентификаторов.

Есть несколько причин, по которым обычно стоит использовать глобально-уникальный идентификатор (GUID) или что-то подобное в качестве идентификатора клиента, а не простое увеличивающееся целое число:

  • Уникальность: Идентификатор GUID гарантированно будет уникальным на всех устройствах и в любое время, поэтому вы можете быть уверены, что ни у одного из двух клиентов не будет одинакового идентификатора. С помощью простого увеличивающегося целого числа двум клиентам может быть присвоен один и тот же идентификатор, если процесс генерации идентификатора не управляется должным образом.

  • Постоянство: GUID идентификатор не подвержен дублированию или повторному использованию, даже если база данных восстановлена из резервной копии. При использовании увеличивающегося целого числа идентификаторы могут не совпадать между резервными копиями, что может привести к путанице.

  • Безопасность: GUID Идентификатор сложнее угадать перебором, чем простое увеличивающееся целое число, поэтому он может обеспечить дополнительный уровень безопасности информации о клиенте.

  • Интеграция: GUID-идентификатор может быть легко интегрирован с другими системами, которые могут генерировать свои собственные уникальные идентификаторы, поскольку маловероятно, что идентификаторы будут конфликтовать.

  • В целом, использование GUID-идентификатора или аналогичного значения в качестве идентификатора клиента может обеспечить множество преимуществ с точки зрения уникальности, постоянства, безопасности и интеграции.

    В PHP один из возможных примеров генерации GUID может быть представлен следующим образом:

    function generateId() 
    {
        return sprintf(
            '%04X%04X-%04X-%04X-%04X-%04X%04X%04X', 
            mt_rand(0, 65535), 
            mt_rand(0, 65535), 
            mt_rand(0, 65535), 
            mt_rand(16384, 20479), 
            mt_rand(32768, 49151), 
            mt_rand(0, 65535), 
            mt_rand(0, 65535), 
            mt_rand(0, 65535)
        );
    }

    Чтобы использовать эту функцию, вы можете просто вызвать ее следующим образом:


    $gid = generateId();

    Это позволит присвоить новый идентификатор переменной $gid. Затем этот идентификатор можно использовать в качестве идентификатора клиента или для любых других целей.

    Таким образом глобально-уникальный идентификатор (GUID) — это хороший способ создать уникальный ключ для некоторой сущности, однако имейте ввиду, что так как guid — это в общем-то строки, которые занимают больше место чем просто числа. Поэтому стоит этот вид идентификатор использовать там, где преимуществ от его
    использования превосходят его недостатки.

    Источник