如何在SQL Server中生成GUID?

时间:2010-07-13 23:18:35

标签: sql-server guid

如何在SQL Server中生成GUID?

我知道我应该使用newid(),但函数使用的算法是什么?它是时间/日期的哈希吗?

1 个答案:

答案 0 :(得分:7)

此处描述了创建它的算法:http://en.wikipedia.org/wiki/Globally_Unique_Identifier

  

<强>算法

     

在用于生成新(V1)GUID的OSF指定算法中,   用户的网卡MAC地址用作最后一组的基础   GUID数字,例如,文档可以是   追溯到创建它的计算机。这个隐私漏洞是   在找到Melissa蠕虫的创造者时使用[2]。大部分的   其他数字基于生成GUID时的时间。 V1 GUID   包含MAC地址和时间的数字可以用数字标识   例如,在第三组数字的第一位置“1”   {2f1e4fc0-81fd-11DA-9156-00036a0f876a}。 V4 GUID使用后者   算法,是一个伪随机数。这些中有一个“4”   相同的位置,例如{38a52be4-9352-453e-af97-5c3b448652f0}。   更具体地说,'data3'位模式将是0001xxxxxxxxxxxx   在第一种情况下,和第二种情况下的0100xxxxxxxxxxxx。密码分析   WinAPI GUID生成器显示,因为V4的序列   GUID是伪随机的;它充分了解内部状态   可以预测先前和后续的值