zoukankan      html  css  js  c++  java
  • GUID,数字世界独一无二的“身份证”http://qkzz.net/magazine/10050043/2007/14/10026736.htm

    GUID,数字世界独一无二的“身份证”
    流 言

    使用QQ、爱逛论坛、常用E-mail的朋友,相信都会遇到过这样的苦恼:无论你想出多么富有创意的昵称或独特的用户名,总会有人抢在你之前已注册了这个名称,这样就形成许多人使用着相同或相似名称的尴尬现象。你不信?那你现在打开QQ查找好友,看看昵称为“流言”的人是不是不计其数?

    相同的昵称虽然给我们的网络冲浪带来些许不便,但还不至于严重影响到我们的生活。不过在有些地方一旦有重名就会引起混乱,比如:全球有上亿的人在为Windows开发各种组件程序,他们在对这些组件程序命名的时候,重名的概率相当高,而当Windows遇到名称完全一样的组件程序时,它就会“手足无措”不知如何区分它们了,从而也就不能正常工作。那么有什么办法能确保自己所取的名称是唯一的,与别人绝不重复呢?通过GUID可以解决这个问题。

    Windows中的奇妙数字
    我们首先来做几个有趣的试验。双击打开“我的电脑”,单击“工具→文件夹选项→查看”,在高级设置中取消对“隐藏已知文件夹类型的扩展名”,确定后返回。这一操作主要是为了方便后面我们随时修改文件的后缀名。
    接下来右击桌面,选择“新建→文件夹”新建一个文件夹,随意取个名称,比如为“试验”。好了,现在开始试验,右击“试验”文件夹,选择“重命名”,为它添加后缀“.{21EC2020-3AEA-1069-A2DD-08002B30309D}”(不含引号,注意前面的句点不要省略,下同)。这时文件夹的图标是不是有所改变?双击它后打开的居然是“控制面板”,原文件夹中的内容全找不到了。这是网上流传的一则文件隐藏技巧,也许你已经知道了,那么再试验一下其他的,把后缀改成“.{645FF040-5081-101B-9F08-00AA002F954E}”,现在再双击它,打开的居然是“回收站”;改成“.{D6277990-4C6A-11CF-8D87-00AA0060F5BF}”,哈哈,又成了“任务计划”了;改成“.{20D04FE0-3AEA-1069-A2D8-08002B30309D}”,打开的则是“我的电脑”。这些奇怪的数字到底是什么?请继续往下看。


    GUID的来龙去脉
    上面所见到的那些奇怪的数字,即所谓的CLSID(类标识符),它是Windows用来标识不同的应用程序、文件类型、OLE对象、特殊文件夹及各种组件的,它其实就是GUID在Windows中的一个别称而已。GUID,是Globally Unique Identifier的缩写,意为全球唯一标识符,借鉴于OSF(开源软件基金会)采用的UUID(Universally Unique Identifier),UUID又是DCE(分布式计算环境)的一部分,主要用于标识RPC(远程过程调用)通信的双方。
    GUID是一个128位的随机数,为了确保它的随机性,它的算法主要从两方面着手:它的一部分数字来源于网卡的序列号(MAC地址,相对来说是唯一的),如果你的电脑中没有网卡,则用其他随机数替代;另一主要部分是取自系统的当前时间。所以从理论上来说,即使一台电脑每秒能产生10000000个GUID,也可以保证3240年不会重复。

    创建自己的GUID
    手工创建GUID是非常麻烦的一件事,其实有许多现存的工具可用,比如Visual C++就提供了两个工具:UUIDGen.exe和GUIDGen.exe。前者是命令行程序,可能过“UUIDGen.exe /?”来查看它的使用方法;后者是基于对话框的应用程序,简单地点击“New GUID”按钮就可以生成了。另外,我在搜索GUID相关资料的时候,看到有人通过Windows自带的WSH脚本,也实现了自动生成GUID。脚本很简短,引用如下:
    Set TypeLib = CreateObject("Scriptlet.TypeLib")
    strGUID = TypeLib.Guid

    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Navigate("about:blank")
    objIE.document.parentwindow.clipboardData.SetData "text", strGUID
    objIE.Quit
    将以上代码保存为后缀是“.vbs”的脚本文件(如:GUIDgen.vbs),双击脚本执行,然后随意打开一个文本编辑器,按Ctrl+V键粘贴就可以了。
    现在随意生成一个GUID号作为自己QQ的昵称,再搜索一下,绝对不会有第二个人会使用到这个名字了。不过这个昵称也太难记忆了,现实生活中还是随俗一点好了,所以我将继续着我的“流言”生涯。

    小提示
    更多打开特殊文件夹的GUID资料,可访问本版论坛(http://bbs.cfan.com.cn/forum-144-1.html)查询。

  • 相关阅读:
    Verilog非阻塞赋值的仿真/综合问题 (Nonblocking Assignments in Verilog Synthesis)上
    异步FIFO结构及FPGA设计 跨时钟域设计
    FPGA管脚分配需要考虑的因素
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 上篇)
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 下篇)
    中国通信简史 (下)
    谈谈德国大学的电子专业
    中国通信简史 (上)
    Verilog学习笔记
    Verilog非阻塞赋值的仿真/综合问题(Nonblocking Assignments in Verilog Synthesis) 下
  • 原文地址:https://www.cnblogs.com/si812cn/p/1320196.html
Copyright © 2011-2022 走看看