js产生GUID两种方法
来源:互联网 发布:运行windows激活信息的 编辑:程序博客网 时间:2024/06/06 02:25
//生成随机GUID function GUID() { var G1 = (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1) + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); var G2 = (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1) + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); return (G1 + G2); } // On creation of a UUID object, set it's initial value 根据时间产生UUID function UUID() { this.id = this.createUUID(); } UUID.prototype.valueOf = function () { return this.id; } UUID.prototype.toString = function () { return this.id; } UUID.prototype.createUUID = function () { // // Loose interpretation of the specification DCE 1.1: Remote Procedure Call // described at http://www.opengroup.org/onlinepubs/009629399/apdxa.htm#tagtcjh_37 // 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; } 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; } UUID.returnBase = function (number, base) { return (number).toString(base).toUpperCase(); } UUID.rand = function (max) { return Math.floor(Math.random() * (max + 1)); }}
0 0
- js产生GUID两种方法
- js 方法产生GUID(转载)
- 前台javascript[js]产生Guid
- 生成GUID的两种方法
- js生成guid方法
- vc 两种方法实现生成全局唯一标识符GUID
- 产生随机数的两种方法
- 产生随机数的两种方法
- js产生随机数的几种方法
- js产生随机数的几种方法
- js两种post方法
- js两种继承方法
- 动态产生GUID
- VC产生(生成)GUID
- VC产生(生成)GUID
- java 如何产生GUID
- VC产生(生成)GUID .
- Java 产生 GUID / UUID
- 模板的偏特化
- svn更改用户名
- 编写Makefile文件
- crontab实用手册
- MySQL系列:innodb引擎分析之内存管理
- js产生GUID两种方法
- 针对表单重复提交的问题
- 十年的征程 - 人类探测器今日首次软着陆彗星:选定J点登陆
- spring问题排查-调低日志等级
- 基站使用api说明
- Linux下ftp实用操作
- MySQL系列:innodb引擎分析之基础数据结构
- Codeforces466C Number of Ways
- 【测试人生】我们需要什么样的软件测试工程师