什么是Guid

GUID(全局唯一标识符)

        全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。GUID一词有时也专指微软对UUID标准的实现。
在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。随机生成两个相同GUID的可能性是非常小的,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如注册表项、类及接口标识、数据库、系统目录等对象。
格式

GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个4位十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
 

GUID特点

★需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。
★GUID理论上能产生全球唯一的值,对于以后的数据导入很方便。
 

GUID争议

由于GUID值产生的潜在弊端已经引起了保密性提倡者的关注。1999年3月,美国联邦商务委员会接到要求,对微软的GUID值使用进行调查。争议主要涉及Office 97和Office 2000文档对GUID值的使用。Office文档,如Word文件或Excel电子数据表,所使用的GUID值对用户是不可见的。但有很多报道宣称,文档的作者是可以通过GUID值的跟踪查到的,即使作者已经采用特殊方法,他们还是可以被追踪到。 为了回应上述问题,微软已经发布了一个Office 97修补版SR2,它禁止了GUID功能的使用,并且还可以将现存文档的GUID去除。
潜在的对Intel处理器序列号滥用的问题与上述GUID值的问题本质是一样的。

C#   使用Guid类生成随机数

        public  static int GetRandomNumber(int min, int max)
{
int rtn = ;
Random r = new Random();
byte[] buffer = Guid.NewGuid().ToByteArray();
int iSeed = BitConverter.ToInt32(buffer, );
r = new Random(iSeed);
rtn = r.Next(min, max + );
return rtn;
}

Java

import java.util.UUID;
public class guid {
/** * @param args */
public static void main(String[] args)
{
// TODO Auto-generated method stub
UUID uuid = UUID.randomUUID();
System.out.println(".{"+uuid.toString()+"}");
}
}

最新文章

  1. 实现倒计时功能js
  2. mysql多种备份方式比较及实现
  3. 【转载】 python修饰符@
  4. [ACM_暴力][ACM_几何] ZOJ 1426 Counting Rectangles (水平竖直线段组成的矩形个数,暴力)
  5. 每天一个linux命令(18):find 命令概览
  6. Java之路
  7. linux系统快速查看进程pid的方法
  8. 开发语言大PK:php和Java哪个更好?
  9. 云脉提供表单识别API接口自助接入
  10. JQuery 事件与动画
  11. iOS开展——全球应对MotionEvent
  12. dojo/request
  13. matlab中同一文件定义子函数的方法
  14. 深入理解 JavaScript 事件循环(一)— event loop
  15. git冲突管理
  16. step_by_step_xUnit_Net_ABP
  17. ABAP 图形练习(GFW_PRES_SHOW and GRAPH_2D)
  18. windows上git安装
  19. tensorflow输出
  20. springboot:session集中存储到redis

热门文章

  1. ORACLE的WITH语句的一个疑惑
  2. vue-router学习
  3. DP Intro - poj 1947 Rebuilding Roads(树形DP)
  4. C 标准库 - string.h
  5. LookupError: unknown encoding: cp65001的问题
  6. 鹅厂优文|主播pk,如何实现无缝切换?
  7. <数据挖掘导论>读书笔记2
  8. android studio应用获取系统属性权限(SystemProperties)
  9. Memcached 查询stats及各项状态解释
  10. php中cookie的操作