A globally unique identifier (guid,globally unique Identifier) is also known as a UUID (universally unique Identifier).
A GUID is a 128-bit numeric identifier generated by the algorithm in binary length. The GUID is formatted as "Xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", where X is a 32-bit hexadecimal number in the range 0-9 or a-f. Ideally, no computer or cluster of computers will generate two identical GUIDs.
The total number of GUIDs reached 2^128 (3.4x10^38), so the probability of randomly generating two identical GUIDs is very small, but not 0. The term GUID sometimes refers to Microsoft's implementation of the UUID standard.
Algorithm 1
Copy Code code as follows:
function uuid () {
var s = [];
var hexdigits = "0123456789abcdef";
for (var i = 0; i < i++) {
S[i] = Hexdigits.substr (Math.floor (Math.random () * 0x10), 1);
}
S[14] = "4"; Bits 12-15 of the time_hi_and_version field to 0010
S[19] = Hexdigits.substr ((s[19) & 0x3) | 0x8, 1); Bits 6-7 of the clock_seq_hi_and_reserved to 01
S[8] = s[13] = s[18] = s[23] = "-";
var uuid = S.join ("");
return UUID;
}
Algorithm 2
Copy Code code as follows:
function guid () {
Return ' xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx '. Replace (/[xy]/g, function (c) {
var r = math.random () *16|0, v = c = = ' x '? R: (r&0x3|0x8);
return v.tostring (16);
});
}
Algorithm 3
Copy Code code as follows:
function guid () {
function S4 () {
Return ((1+math.random ()) *0x10000). toString. substring (1);
}
Return (S4 () +s4 () + "-" +s4 () + "-" +s4 () + "-" +s4 () + "-" +S4 () +s4 () +s4 ());
}
Algorithm 4
Copy Code code as follows:
function uuid (len, radix) {
var chars = ' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '. Split (');
var uuid = [], I;
Radix = Radix | | Chars.length;
if (len) {
Compact form
for (i = 0; i < len i++) uuid[i] = Chars[0 | Math.random () *radix];
} else {
rfc4122, version 4 form
var R;
rfc4122 requires these characters
UUID[8] = uuid[13] = uuid[18] = uuid[23] = '-';
UUID[14] = ' 4 ';
Fill in random data. At i==19 set the high bits of clock sequence as
Per rfc4122, sec. 4.1.5
for (i = 0; i < i++) {
if (!uuid[i]) {
R = 0 | Math.random () *16;
Uuid[i] = chars[(i = = 19)? (R & 0x3) | 0X8:R];
}
}
}
Return Uuid.join (");
}
This can specify the length and cardinality. Like what
Copy Code code as follows:
8 character ID (base=2)
UUID (8, 2)//"01001010"
8 character ID (base=10)
UUID (8, 10)//"47473046"
8 character ID (base=16)
UUID (8,)//"098f4d35"