天天看點

JS生成UUID

  UUID就是Universal Unique IDentifier的縮寫,它是一個128位,16位元組的值,并確定在時間和空間上唯一。

它是把硬體位址、時間以及随機數結合在一起,它保證對在同一時空中的所有機器都是唯一的。

        通常平台會提供生成UUID的API。UUID按照開放軟體基金會 (OSF)制定的标準計算,用到了以太網卡位址、納秒級時間、晶片ID碼和許多可能的數字。由以下幾部分的組合:目前日期和時間(UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一個部分不同,其餘相同),時鐘序列,全局唯一的IEEE機器識别号(如果有網卡,從網卡獲得,沒有網卡以其他方式獲得),UUID的唯一缺陷在于生成的結果串會比較長。關于UUID這個标準使用最普遍的是微軟的GUID (Globals Unique Identifiers)。

例如,一台300PL 6862的計算機,主機闆內建的網卡的MAC位址為00-04-AC-2E-B7-DC,而UUID的最後六個位元組也會是0004AC2EB7DC

java類:java.util.UUID

UUID是1.5中新增的一個類,在java.util下,用它可以産生一個号稱全球唯一的ID

  

編譯運作輸出如:c9d6294f-0c62-453f-8626-68c7b0fc9769

全局唯一辨別符,簡稱GUID(發音為 /ˈɡuːɪd/或/ˈɡwɪd/),是一種由算法生成的唯一辨別,通常表示成32個16進制數字(0-9,A-F)組成的字元串,如:{21EC2020-3AEA-1069-A2DD-08002B30309D},它實質上是一個128位長的二進制整數。GUID一詞有時也專指微軟對UUID标準的實作。

GUID的主要目的是産生完全唯一的數字。在理想情況下,任何計算機和計算機叢集都不會生成兩個相同的GUID。GUID的總數也足夠大,達到了2128(3.4×1038)個,是以随機生成兩個相同GUID的可能性是非常小的,但并不為0。是以,用于生成GUID的算法通常都加入了非随機的參數(如時間),以保證這種重複的情況不會發生。

下面是生成Guid代碼實作,優點是代碼量極少:

  下面是幾種生成Guid的算法來自(http://www.cnblogs.com/snandy/p/3261754.html)

1、

  2.

  3、

這個可以指定長度和基數:

<code>// 8 character ID (base=2)</code>

<code>uuid(8, 2)  </code><code>//  "01001010"</code>

<code>// 8 character ID (base=10)</code>

<code>uuid(8, 10) </code><code>// "47473046"</code>

<code>// 8 character ID (base=16)</code>

<code>uuid(8, 16) </code><code>// "098F4D35"</code>