zoukankan      html  css  js  c++  java
  • JS生成Guid

    一、GUID是什么

          全局唯一标识符,简称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的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。

    JS生成GUID

    // Generate four random hex digits.  
    function S4() {  
       return (((1+Math.random())*0x10000)|0).toString(16).substring(1);  
    };  
    // Generate a pseudo-GUID by concatenating random hexadecimal.  
    function guid() {  
       return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());  
    };  

    下面是几种生成Guid的算法来自(http://www.cnblogs.com/snandy/p/3261754.html)

    方法1.
    function uuid() {  
        var s = [];  
        var hexDigits = "0123456789abcdef";  
        for (var i = 0; i < 36; i++) {  
            s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);  
        }  
        s[14] = "4";  // bits 12-15 of the time_hi_and_version field to 0010  
        s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);  // bits 6-7 of the clock_seq_hi_and_reserved to 01  
        s[8] = s[13] = s[18] = s[23] = "-";  
       
        var uuid = s.join("");  
        return uuid;  
    } 
    ----------------------------------------------------
    方法2.
    function guid() {  
        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {  
            var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);  
            return v.toString(16);  
        });  
    }  
  • 相关阅读:
    SQL中的全局变量和局部变量(@@/@)
    C# 委托Delegate(一) 基础介绍&用法
    internal in C#
    用代码块在new对象时set属性
    MySql与对应的Java的时间类型
    快速获取当天0点0分0秒(00:00:00)
    IsNullOrWhiteSpace与IsNullOrEmpty
    svn服务器配置 for mac
    CornerStone配置SVN,HTTP及SVN简单使用说明
    svn配置
  • 原文地址:https://www.cnblogs.com/hzjdpawn/p/13201825.html
Copyright © 2011-2022 走看看