全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) 。

GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。

GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。GUID一词有时也专指微软对UUID标准的实现。

算法一:

  1. function uuid() {
  2. var s = [];
  3. var hexDigits = "0123456789abcdef";
  4. for (var i = 0; i < 36; i++) {
  5. s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
  6. }
  7. s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
  8. s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
  9. s[8] = s[13] = s[18] = s[23] = "-";
  10.  
  11. var uuid = s.join("");
  12. return uuid;
  13. }

算法二:

  1. function guid() {
  2. return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
  3. var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
  4. return v.toString(16);
  5. });
  6. }

算法三:

  1. function guid() {
  2. function S4() {
  3. return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
  4. }
  5. return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
  6. }

算法四:

  1. function uuid(len, radix) {
  2. //第一个参数长度,第二个参数进制
  3. var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
  4. var uuid = [], i;
  5. radix = radix || chars.length;
  6.  
  7. if (len) {
  8. // Compact form
  9. for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
  10. } else {
  11. // rfc4122, version 4 form
  12. var r;
  13.  
  14. // rfc4122 requires these characters
  15. uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
  16. uuid[14] = '4';
  17.  
  18. // Fill in random data. At i==19 set the high bits of clock sequence as
  19. // per rfc4122, sec. 4.1.5
  20. for (i = 0; i < 36; i++) {
  21. if (!uuid[i]) {
  22. r = 0 | Math.random()*16;
  23. uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
  24. }
  25. }
  26. }
  27.  
  28. return uuid.join('');
  29. }
  30.  
  31. //使用
  32. // 8 character ID (base=2)
  33. uuid(8, 2) // "01001010"
  34. // 8 character ID (base=10)
  35. uuid(8, 10) // "47473046"
  36. // 8 character ID (base=16)
  37. uuid(8, 16) // "098F4D35"

推荐使用第四个

javascript 生成 uuid的更多相关文章

  1. javascript 生成UUID

    代码一: /*! Math.uuid.js (v1.4) http://www.broofa.com mailto:robert@broofa.com Copyright (c) 2010 Rober ...

  2. js,javascript生成 UUID的四种方法

    全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID是一种由算法生成的二进制长度 ...

  3. 使用javascript生成的植物显示过程特效

    查看效果:http://keleyi.com/keleyi/phtml/html5/33.htm .NET版本:http://keleyi.com/a/bjac/66mql4bc.htm 完整HTML ...

  4. Java 生成 UUID

    1.UUID 简介 UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Found ...

  5. php生成UUID

    UUID含义是 通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, O ...

  6. 【原创】网站抓包HttpWebRequest不返回Javascript生成的Cookie的解决办法

    前言: 最近在做中国移动爬虫的过程中,首先遇到的就是 在某个请求中,有一个名为“WT_PFC"的cookie键值是由前端JavaScript生成的,没有进入到HttpWebResponse中 ...

  7. JS生成UUID的方法实例

    <!DOCTYPE html> <html> <head> <script src="http://libs.baidu.com/jquery/1. ...

  8. linux c 生成uuid

    /********方法一**********/#include <stdio.h> #include <stdlib.h> #include <string.h> ...

  9. java 生成UUID

    UUID(Universally Unique Identifier)全局唯一标识符,是一个128位长的数字,一般用16进制表示. 算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成UUID, ...

随机推荐

  1. WF4.0以上使用代码完整自定义动态生成执行工作流Xaml文件

    给大家分享一下,如何完全使用代码自定义的创建生成工作流文件(用代码创建Xaml文件),并且动态加载运行所生成的工作流. 工作流生成后 在Xaml文件里的主要节点如下: 输入输出参数 <x:Mem ...

  2. hdu4185二分图匹配

    Thanks to a certain "green" resources company, there is a new profitable industry of oil s ...

  3. RNN的介绍

    一.状态和模型 在CNN网络中的训练样本的数据为IID数据(独立同分布数据),所解决的问题也是分类问题或者回归问题或者是特征表达问题.但更多的数据是不满足IID的,如语言翻译,自动文本生成.它们是一个 ...

  4. jQuery中的选择器(下)

    这一篇主要写过滤选择器和表单选择器 在这里,我不再已表格形式说明(自己太懒了),主要以文字形式说明一下每个选择器的作用描述.  3.过滤选择器 过滤选择器主要是通过特定的过滤规则筛选出所需的DOM元素 ...

  5. vs项目和msql不兼容解决方案

    当vs的工程项目加载了libmysql.lib 即:附加包含目录,附加库目录,附加依赖项都设置好之后,如过编译出现如下: error LNK2019: 无法解析的外部符号 _mysql_real_co ...

  6. wifi驱动总结(1)

    一.wifi平台设备驱动注册过程Path:Rtw_android.c (rk3399\kernel\drivers\net\wireless\rockchip_wlan\rtl8723au\os_de ...

  7. Ubuntu16.04 安装flash player

    sudo apt-get install browser-plugin-freshplayer-pepperflash

  8. JavaScript性能优化 DOM编程

    最近在研读<高性能JavaScript>,在此做些简单记录.示例代码可在此处查看到. 一.DOM 1)DOM和JavaScript 文档对象模型(DOM)是一个独立于语言的,用于操作XML ...

  9. 唯独ie浏览器缓存ajax请求

    用fiddler调试http请求,在ie浏览器下,如果请求命中缓存,fiddler不会包含该请求.但是在chrome下会包含缓存的请求,Result显示为304. ie浏览器还会缓存通过ajax请求的 ...

  10. cin 对象取值过程详解

    突然又空,鉴于对cin对象的去值机制还不是很了解,就探究一番,并且记下来,方便以后复习. #include <iostream> int main(void) { using namesp ...