天天看点

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>