The globally unique identifier (guid,globally unique Identifier) is also known as the UUID (universally unique Identifier).
A GUID is a numeric identifier generated by the algorithm with a binary length of 128 bits. The format of the GUID is "Xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", where X is a 32-bit hexadecimal number in the range of 0-9 or a-f. Ideally, no computer or computer cluster will generate two identical GUIDs.
The total number of GUIDs reaches 2^128 (3.4x10^38), so the probability of randomly generating two identical GUIDs is very small, but not 0. The term GUID also sometimes refers to Microsoft's implementation of the UUID standard.
Algorithm 1
1 functionuuid () {2 vars = [];3 varHexdigits = "0123456789abcdef";4 for(vari = 0; I < 36; i++) {5S[i] = Hexdigits.substr (Math.floor (Math.random () * 0x10), 1);6 }7S[14] = "4";//bits 12-15 of the Time_hi_and_version field to 00108S[19] = Hexdigits.substr ((s[19] & 0x3) | 0x8, 1);//bits 6-7 of the clock_seq_hi_and_reserved to9S[8] = s[13] = s[18] = s[23] = "-";Ten One varUUID = S.join (""); A returnuuid; -}
Algorithm 2
1 function guid () {2 return function (c) {3 var r = math.random () *16|0, v = c = = ' X ' r: (r&0x3|0x8); 4 return v.tostring (+); 5 }); 6 }
Algorithm 3
1 function guid () {2 function S4 () {3 return (((1+math.random ()) *0x10000) (((()). ToString (+). SUBSTRING (1); 4 }5 return (S4 () +s4 () + "-" +s4 () + "-" +s4 () + "-" +s4 () + "-" +S4 () +s4 () + S4 ()); 6 }
Algorithm 4
1 functionuuid (len, radix) {2 varchars = ' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '. Split (');3 varUUID =[], I;4Radix = Radix | |chars.length;5 6 if(len) {7 //Compact Form8 for(i = 0; i < len; i++) uuid[i] = Chars[0 | Math.random () *Radix];9}Else {Ten //rfc4122, version 4 form One varR; A - //rfc4122 requires these characters -UUID[8] = uuid[13] = uuid[18] = uuid[23] = '-'; theUUID[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; AUuid[i] = chars[(i = = 19)? (R & 0x3) | 0x8: R]; at } - } - } - - returnUuid.join (' '); -}
This can specify the length and cardinality. Like what
1 // 8 character ID (base=2) 2 uuid (8, 2) // "01001010"3// 8 character ID (base=10) 4// "47473046"5// 8 character ID (base=16) 6 // "098f4d35"
Reproduced:
Http://www.cnblogs.com/snandy/p/3261754.html
JavaScript algorithm for generating GUIDs