Что такое UUID? - PullRequest
       43

Что такое UUID?

32 голосов
/ 15 ноября 2008

Ну, а кто такой?

Ответы [ 7 ]

48 голосов
/ 15 ноября 2008

Это идентификационный номер, который однозначно идентифицирует что-то. Идея заключается в том, что этот идентификационный номер будет универсально уникальным. Таким образом, две вещи не должны иметь одинаковый uuid. Фактически, если бы вы генерировали 10 триллионов единиц, было бы что-то похожее на вероятность .00000006, что две единицы будут одинаковыми.

43 голосов
/ 24 апреля 2009

Стандартизированные идентификаторы

UUID s определены в RFC 4122 . Это универсальные уникальные идентификаторы, которые могут быть созданы без использования централизованных полномочий. Существует четыре основных типа UUID, которые используются в немного разных сценариях. Все UUID имеют длину 128 битов, но обычно представлены в виде 32 шестнадцатеричных символов, разделенных четырьмя дефисами.

UUID версии 1, наиболее распространенные, сочетают MAC-адрес и временную метку для обеспечения достаточной уникальности. В случае, если несколько UUID генерируются достаточно быстро, чтобы временная метка не увеличивалась до следующего поколения, временная метка вручную увеличивается на 1. Если MAC-адрес недоступен или его присутствие нежелательно по соображениям конфиденциальности, 6 случайным образом Вместо идентификатора узла могут использоваться байты, полученные из криптографически безопасного генератора случайных чисел.

UUID версии 3 и версии 5, наименее распространенные, используют хеш-функции MD5 и SHA1 соответственно, плюс пространство имен и уже уникальное значение данных для создания уникального идентификатора. Это можно использовать, например, для генерации UUID из URL.

UUID версии 4 - это просто 128 бит случайных данных, с небольшим количеством битов для идентификации версии и варианта UUID.

UUID коллизии крайне вряд ли произойдут, особенно не в одном пространстве приложения.

8 голосов
/ 15 ноября 2008

Это очень длинная цепочка битов, которая должна быть уникальной сейчас и навсегда, т. Е. Никакое возможное столкновение с любым другим UUID, созданным вами или кем-либо еще в мире.

Как это работает, просто использует текущую временную метку и уникальное свойство Интернета, сгенерировавшее его (например, IP-адрес, который должен быть уникальным в момент подключения к Интернету; адрес, который является более низким уровнем (аппаратный идентификатор вашей сетевой карты), является частью строки битов.

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

3 голосов
/ 15 ноября 2008
1 голос
/ 08 февраля 2019

Я просто хочу добавить, что лучше использовать usUUID (идентификаторы статических окон). Например, если пользователь компьютера, который использует стороннее программное обеспечение, такое как программа чтения с экрана, для слепых или слабовидящих пользователей, другое программное обеспечение (в данном случае средство чтения с экрана) будет лучше работать с уникальными идентификаторами! В конце концов, как вы будете счастливы, если кто-то передвинет вашу машину после того, как вы узнаете место, где вы ее припарковали !!!

1 голос
/ 05 ноября 2018

UUID означает универсальный уникальный идентификатор . Это 128-битное значение, используемое для уникальной идентификации при разработке программного обеспечения. UUID совпадает с GUID (Microsoft) и является частью распределенной вычислительной среды (DCE), стандартизированной Open Software Foundation (OSF).

Как упомянуто, они предназначены для того, чтобы иметь высокую вероятность уникальности в пространстве и времени, и их трудно угадать в вычислительном отношении. Его генерация основана на текущей временной метке и уникальном свойстве рабочей станции, сгенерировавшей UUID.

enter image description here Изображение из https://segment.com/blog/a-brief-history-of-the-uuid/

1 голос
/ 20 августа 2018

UUID - это 128-битное число, которое используется для уникальной идентификации некоторого объекта. В зависимости от конкретных используемых механизмов UUID гарантированно будет отличаться или, по крайней мере, чрезвычайно вероятно, будет отличаться от любого другого сгенерированного UUID. UUID опирается на комбинацию компонентов для обеспечения уникальности. UUID содержит ссылку на сетевой адрес хоста, который сгенерировал UUID, временную метку и случайно сгенерированный компонент. Поскольку сетевой адрес идентифицирует уникальный компьютер, а временная метка является уникальной для каждого UUID, сгенерированного на конкретном хосте, эти два компонента должны в достаточной степени гарантировать уникальность.

...