Tag: GUID

SCOPE_IDENTITY()为GUID?

任何人都可以告诉我,如果有相当于SCOPE_IDENTITY()使用GUIDs作为SQL Server中的主键? 我不想首先创buildGUID并保存为variables,因为我们使用顺序的GUID作为主键。 任何想法什么是最好的方法来检索最后插入的GUID主键?

C#如何创build一个Guid值?

我们的结构的一个领域是Guidtypes。 如何为它生成一个有效的值?

testing如果string是一个GUID没有抛出exception?

我想尝试将string转换为Guid,但我不想依靠捕捉exception( 出于性能的原因 – 例外是昂贵的 出于可用性原因 – debugging器popup 出于devise的原因 – 预期并不例外 换句话说这个代码: public static Boolean TryStrToGuid(String s, out Guid value) { try { value = new Guid(s); return true; } catch (FormatException) { value = Guid.Empty; return false; } } 是不适合的。 我会尝试使用正则expression式,但由于GUID可以是括号包装,括号包装,没有包装,使得它很难。 此外,我认为某些Guid值是无效的(?) 更新1 ChristianK有一个好主意,只抓住FormatException ,而不是全部。 更改了问题的代码示例以包含build议。 更新2 为什么要担心抛出exception? 我真的很期待无效的GUID吗? 答案是肯定的 。 这就是为什么我使用TryStrToGuid – 我期待不好的数据。 示例1 […]

如何创build确定性指导

在我们的应用程序中,我们正在创build具有Guid值的属性的Xml文件。 这个值需要在文件升级之间保持一致。 因此,即使文件中的其他内容发生更改,该属性的guid值也应该保持不变。 一个明显的解决scheme是创build一个带有文件名和Guid的静态字典用于他们。 然后,每当我们生成文件,我们查找字典的文件名,并使用相应的GUID。 但这是不可行的,因为我们可能会扩展到100个文件,并不想保留大量的guid。 所以另一种方法是使Guid基于文件的path相同。 由于我们的文件path和应用程序目录结构是唯一的,Guid应该是唯一的path。 所以每次我们运行升级时,文件都会根据path获取相同的GUID。 我发现了一个很酷的方法来生成这样的“ 决定性指导 ”(Elton Stoneman)。 它基本上这样做: private Guid GetDeterministicGuid(string input) { //use MD5 hash to get a 16-byte hash of the string: MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider(); byte[] inputBytes = Encoding.Default.GetBytes(input); byte[] hashBytes = provider.ComputeHash(inputBytes); //generate a guid from the hash: Guid hashGuid = new Guid(hashBytes); return […]

顺序Guid生成器

有没有办法获得Sql Server 2005+ Sequential Guid生成器的function,而无需插入logging来往返读取或调用本机的win dll调用? 我看到有人用rpcrt4.dll的方式回答,但我不确定是否可以从我的托pipe环境进行生产。 编辑:使用@John Boker的答案我试图把它变成更GuidComb生成器,而不是依赖于最后生成的Guid,而不是重新开始。 对于种子,而不是以Guid.Empty开始我使用 public SequentialGuid() { var tempGuid = Guid.NewGuid(); var bytes = tempGuid.ToByteArray(); var time = DateTime.Now; bytes[3] = (byte) time.Year; bytes[2] = (byte) time.Month; bytes[1] = (byte) time.Day; bytes[0] = (byte) time.Hour; bytes[5] = (byte) time.Minute; bytes[4] = (byte) time.Second; CurrentGuid = new Guid(bytes); } 我基于这个评论 […]

用Java创build一个GUID

在Java中创build一个GUID的最佳方法是什么?

如何testing有效的UUID / GUID?

如何检查variables是否包含有效的UUID / GUID标识符? 我目前只对validationtypes1和4感兴趣,但是对于您的答案并不限制。

随机是如何System.Guid.NewGuid()? (拿两个)

在你开始把这个标记为重复之前 ,请把我读出来。 另一个问题有(很有可能)不正确的接受答案。 我不知道.NET如何生成它的GUID,可能只有微软,但它很可能只是调用CoCreateGuid() 。 但是该函数被logging为调用UuidCreate() 。 而创build一个UUID的algorithm已经很好的logging了 。 长话短说, System.Guid.NewGuid() ,似乎System.Guid.NewGuid()确实使用版本4的UUID生成algorithm ,因为它生成的所有GUID都与条件匹配(请参阅我自己,我尝试了几百万个GUID,它们全部匹配)。 换句话说,这些GUID 几乎是随机的,除了一些已知的位。 这再次提出了这个问题 – 随机性是多么的随意? 正如每个好的小程序员所知道的,一个伪随机数algorithm只和它的种子一样随机(又称熵)。 那么UuidCreate()的种子是什么? PRNG重新播种了多less? 它是密码强大的,还是我可以期望相同的GUID开始倾吐,如果两台计算机不小心同时呼叫System.Guid.NewGuid() ? 如果收集足够多的顺序生成的GUID,PRNG的状态可以被猜测吗? 补充:为了澄清,我想了解我可以如何信任它,因此 – 我可以在哪里使用它。 所以,我们在这里build立一个粗略的“随机性” 基本随机性,以当前时间为种子。 可用于在纸牌洗牌,但没有其他碰撞,即使没有尝试也很容易。 更高级的随机性,不仅使用时间,而且还使用其他机器特定的种子因素。 也许在系统启动时也只播种一次。 这可以用于在数据库中生成ID,因为重复是不太可能的。 尽pipe如此,这对安全性并不好,因为可以用足够的努力预测结果。 使用设备噪声或其他先进的随机性来源进行密码随机分配。 每次调用都要重新播种,或者至less经常播种。 可用于会话ID,分发给不受信任的各方等 我一直在想这个问题是否可以使用它们作为数据库ID,以及Guid.combalgorithm是否与System.Guid.NewGuid()一起实现(像NHibernate一样)会有缺陷。

GUID和UUID之间是否有区别?

我看到了这两个缩写,我想知道GUID和UUID之间是否有区别?

GUID碰撞可能吗?

我正在使用SQL Server 2000中的数据库,该数据库使用每个用户使用的GUID来使用它绑定的应用程序。 不知何故,两个用户结束了相同的GUID。 我知道microsoft使用一种algorithm来生成一个随机的GUID,导致碰撞的几率非常低,但是碰撞仍然是可能的吗?