`

利用JS生成32位的UUID(源码)

阅读更多

创建 UUID.js 文件, 然后复制以下内容:

 

// On creation of a UUID object, set it's initial value
function UUID(){
    this.id = this.createUUID();
}

 

// When asked what this Object is, lie and return it's value
UUID.prototype.valueOf = function(){ return this.id; };
UUID.prototype.toString = function(){ return this.id; };

 

//
// INSTANCE SPECIFIC METHODS
//
UUID.prototype.createUUID = function(){
    //
    // Loose interpretation of the specification DCE 1.1: Remote Procedure Call
    // since JavaScript doesn't allow access to internal systems, the last 48 bits
    // of the node section is made up using a series of random numbers (6 octets long).
    // 
    var dg = new Date(1582, 10, 15, 0, 0, 0, 0);
    var dc = new Date();
    var t = dc.getTime() - dg.getTime();
    var tl = UUID.getIntegerBits(t,0,31);
    var tm = UUID.getIntegerBits(t,32,47);
    var thv = UUID.getIntegerBits(t,48,59) + '1'; // version 1, security version is 2
    var csar = UUID.getIntegerBits(UUID.rand(4095),0,7);
    var csl = UUID.getIntegerBits(UUID.rand(4095),0,7);

    // since detection of anything about the machine/browser is far to buggy,
    // include some more random numbers here
    // if NIC or an IP can be obtained reliably, that should be put in
    // here instead.
    var n = UUID.getIntegerBits(UUID.rand(8191),0,7) +
            UUID.getIntegerBits(UUID.rand(8191),8,15) +
            UUID.getIntegerBits(UUID.rand(8191),0,7) +
            UUID.getIntegerBits(UUID.rand(8191),8,15) +
            UUID.getIntegerBits(UUID.rand(8191),0,15); // this last number is two octets long
    return tl + tm  + thv  + csar + csl + n;
};

 

//Pull out only certain bits from a very large integer, used to get the time
//code information for the first part of a UUID. Will return zero's if there
//aren't enough bits to shift where it needs to.
UUID.getIntegerBits = function(val,start,end){
 var base16 = UUID.returnBase(val,16);
 var quadArray = new Array();
 var quadString = '';
 var i = 0;
 for(i=0;i<base16.length;i++){
     quadArray.push(base16.substring(i,i+1));   
 }
 for(i=Math.floor(start/4);i<=Math.floor(end/4);i++){
     if(!quadArray[i] || quadArray[i] == '') quadString += '0';
     else quadString += quadArray[i];
 }
 return quadString;
};

 

//Replaced from the original function to leverage the built in methods in
//JavaScript. Thanks to Robert Kieffer for pointing this one out
UUID.returnBase = function(number, base){
 return (number).toString(base).toUpperCase();
};

 

//pick a random number within a range of numbers
//int b rand(int a); where 0 <= b <= a
UUID.rand = function(max){
 return Math.floor(Math.random() * (max + 1));
};

 

 

注: 使用时, 调用UUID.prototype.createUUID ()方法,返回32位UUID

分享到:
评论
3 楼 young.java 2014-06-07  
[flash=200,200][url][img][list]
[*]
引用
[u][i][b][/b][/i][/u]
[/list][/img][/url][/flash]
2 楼 pdreamer 2011-07-08  
function makeUUID() {
    var S4 = function () {
        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    };
    return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
1 楼 蓝色0度 2011-03-10  

正要用这个

相关推荐

    UUID生成模块源码,支持版本1,3,4,5

    UUID,全称Universally Unique Identifier,是用于唯一标识信息的128位数字。在IT领域,UUID常被用来创建不重复的标识符,广泛应用于分布式系统、数据库、网络编程等多个场景。UUID由多个部分组成,包括时间戳、...

    易语言-UUID生成模块源码,支持版本1,3,4,5

    在易语言中,UUID生成模块源码是用于在程序中生成UUID的关键组件,可以支持UUID的版本1、3、4、5。 版本1的UUID基于时间戳和MAC地址生成,保证了在一定时间范围内和特定硬件环境下的唯一性。但因为涉及MAC地址,...

    javascript UUID---js

    在JavaScript中,生成UUID主要用于创建唯一的ID,这对于数据跟踪、对象标识和分布式系统尤其有用。 在给定的博客链接中,作者可能讨论了如何在JavaScript中生成和使用UUID。尽管没有具体的博客内容,但我们可以基于...

    zazu-uuid-generator:简单的Zazu插件可生成UUID

    "zazu-uuid-generator" 是一个针对Zazu个人桌面搜索引擎的扩展插件,其主要功能是生成UUID(通用唯一标识符)。UUID是一个由特定算法生成的128位数字,用于在分布式系统中确保每个实体的唯一性。 **描述解析:** ...

    多功能版在线WEB工具箱PHP源码带后台安装版

    UUID v4 生成器工具。Bcrypt 生成器工具。 密码生成器工具。密码强度检查工具。弹头生成器工具。HTML 压缩工具。CSS 缩小工具。JS 压缩工具。用户代理解析器工具。 网站托管检查工具。字符计数器工具。URL 解析器...

    八字排盘java源码-clj-uuid:Clojure的RFC4122唯一标识符(v1、v3、v4、v5、squid)

    java源码clj-uuid “UUID 的目的是使分布式系统能够在没有重要中央协调的情况下唯一地识别信息。” —— clj-uuid是一个 Clojure 库,用于生成和利用 UUID(通用唯一标识符),如 所述。 该库扩展了标准 Java UUID ...

    2023最新全功能版在线WEB工具箱PHP源码

    UUID v4 生成器工具。Bcrypt 生成器工具。 密码生成器工具。密码强度检查工具。弹头生成器工具。HTML 压缩工具。CSS 缩小工具。JS 压缩工具。用户代理解析器工具。 网站托管检查工具。字符计数器工具。URL 解析器...

    2023最新全功能版在线WEB工具箱PHP源码 66toolkit.zip

    UUID v4 生成器工具。Bcrypt 生成器工具。 密码生成器工具。密码强度检查工具。弹头生成器工具。HTML 压缩工具。CSS 缩小工具。JS 压缩工具。用户代理解析器工具。 网站托管检查工具。字符计数器工具。URL 解析器...

    KnownUser_V3_Javascript-源码.rar

    9. **用户标识生成与管理**:可能采用了UUID、随机字符串等技术生成唯一的用户标识,以跟踪用户行为。 10. **测试框架**:如Jest、Mocha等,确保代码的质量和稳定性。 通过分析和学习这份源码,开发者不仅可以提升...

    JPA的POJO生成

    `.mht`是一种单一文件的网页归档格式,它包含了网页的所有内容,包括HTML、CSS、JavaScript和图像等资源。这个教程可能涵盖了JPA的基础概念,如实体(Entity)、持久化上下文(Persistence Context)、事务管理...

    uuidgenerator

    在JavaScript中,`uuidgenerator`可能是用于生成UUID的库或工具。这个库可以帮助开发者在JavaScript应用程序中生成具有唯一性的字符串,这对于数据库记录、临时ID、或者任何需要唯一标识符的场景都非常有用。 UUID...

    cordova-plugin-generator-uuid:用于生成用于应用程序的 UUID 的cordova 插件

    “cordova-plugin-generator-uuid”是一个专门针对Cordova应用的插件,它的主要功能是生成UUID(Universally Unique Identifier),这是一种在软件开发中广泛使用的唯一标识符。UUID在应用程序中常用于设备识别、...

    polymer-uuid:将 node-uuid 包装在 Polymer 组件中

    `node-uuid` 是一个用于生成 RFC4122 版本 1、4 和 5 的 `UUID` 的 JavaScript 库,通常用于 `Node.js` 环境。这个库已经被弃用,但其功能被 `uuid` 库所继承。`polymer-uuid` 将 `node-uuid` 的能力引入到浏览器...

    200个微信小程序案例源码可运行.zip

    使用第三方模块Underscore.js, Immutable.js, UUID 推荐研究demo:豆瓣电影:代码中有大量注释 微信下程序demo:电影麻辣烫 微信小程序模仿拉钩招聘APP源代码 微信小程序24点计算游戏 微信小程序24点计算游戏(2) 微信小...

    uuidgen:同步 uuidgen 保证是唯一的

    在JavaScript中,使用`uuidgen`库通常非常简单,你可以通过安装和引入该库,然后调用提供的函数来生成UUID。例如,如果你使用的是npm,可以运行`npm install uuidgen`进行安装,然后在代码中引入: ```javascript ...

    javaWeb传智播客网上书城项目源码(设计以及实现论文)

    激活码使用uuid生成! &gt; 登录成功时会把当前用户名保存到cookie中,为了在登录页面的输入框中显示! 用户退出:销毁session 2). 分类模块 查询所有分类: &gt; 有1级和2级分类 &gt; 在页面中使用手风琴式菜单...

    PHP实例开发源码—php启科短网址程序.zip

    3. **哈希算法**:为了生成唯一且短小的ID,可能使用了哈希算法如MD5或SHA系列,也可能使用了更安全的UUID。 4. **用户接口设计**:理解如何使用PHP构建前端界面,如表单提交、错误处理和结果展示,可能涉及到HTML...

Global site tag (gtag.js) - Google Analytics