I. Understanding of UUID
Uuid
Wikipedia, the free encyclopedia
Universal Unique identifier (universally unique Identifier, UUID) is a software construction standard, also for the Free Software Foundation (Open Software Foundation, OSF) organization in the Distributed computing environment (distribut Ed Computing Environment, DCE) is part of the field.
The purpose of UUID is to allow all elements in a distributed system to have unique identifying information, without the need to specify the identification information through the central control. In this way, each person can establish a UUID that does not conflict with others. In such cases, there is no need to consider the name duplication problem when the database is established. The most widely used UUID is Microsoft's globally Unique Identifiers (GUIDs), while other important applications are Linux EXT2/EXT3 file system, Luks encrypted partition area, GNOME, KDE, Mac OS X, and so on. In addition, we can find the implementation in the UUID library in the E2fsprogs package.
[Edit] Definition
A set of UUID, consisting of a string of 16 bytes (also called 16 bytes, or 128 bits) of 16 digits, is the total number of 216 x 8=2128 of the UUID, approximately equal to 3.4 x 1038. That is to say, it takes 10 billion years to run out of all the UUID if 1 trillion UUID is generated per nanosecond.
The standard type of UUID consists of 32 16 digits, which are divided into five segments, in the form of a 8-4-4-4-12 32 characters. Example
550e8400-e29b-41d4-a716-446655440000
The UUID can also be deliberately repeated to denote the same. For example, in Microsoft COM, all components must implement the IUnknown interface by generating a UUID representing the IUnknown. Either the program attempts to access the IUnknown interface in the component, or the component that implements the IUnknown interface, as long as IUnknown is used, it is referenced to the same id:00000000-0000-0000-c000-000000000046.
[Edit] Repeat probability of a random uuid
Of the 128 bits of a randomly generated UUID (such as that generated by the Java.util.UUID Class), 122 bits are randomly generated, 4 bits are used in this version (the ' randomly generated UUID '), and 2 are in their variant (' Leach-salz ') is used. Using the birthday paradox, the probability of the two UUID having the same value is approximately
The following is the probability of collisions after the N-pen uuid is calculated with x=2122:
n Chance
68,719,476,736 = 236 0.0000000000000004 (4 x 10-16)
2,199,023,255,552 = 241 0.0000000000004 (4 x 10-13)
70,368,744,177,664 = 246 0.0000000004 (4 x 10-10)
Compared with the probability of being hit by a meteorite, it is estimated that the probability of a person being hit by a meteorite every year is 17 billion 1[1], that is, the probability is about 0.00000000006 (6 x 10-11), which is equivalent to having a 10 trillion-pointer uuid built into the year and a repetition occurs. In other words, the odds of producing only one repetition per second of 1 billion uuid,100 years are 50%. If everyone on the planet has 600 million uuid each, the chance of a repeat is 50%.
The situation of generating duplicate UUID and causing error is very low, so it is not necessary to consider this problem.
The probability is also related to the quality of the random number generator. To avoid increased repetition, you must generate values by using a false number generator that is grounded in cryptography.
Http://zh.wikipedia.org/zh-cn/UUID