相关疑难解决方法(0)

如何创建确定性指导

在我们的应用程序中,我们使用具有Guid值的属性创建Xml文件.该值必须在文件升级之间保持一致.因此,即使文件中的其他内容发生更改,该属性的guid值也应保持不变.

一个显而易见的解决方案是创建一个静态字典,其中包含文件名和用于它们的Guids.然后每当我们生成文件时,我们都会在字典中查找文件名并使用相应的guid.但这不可行,因为我们可能会扩展到100个文件并且不想保留大量的guid.

所以另一种方法是根据文件的路径使Guid相同.由于我们的文件路径和应用程序目录结构是唯一的,因此Guid对于该路径应该是唯一的.因此,每次我们运行升级时,文件都会根据其路径获得相同的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 hashGuid; 

} 
Run Code Online (Sandbox Code Playgroud)

所以给定一个字符串,Guid将始终是相同的.

有没有其他方法或建议的方法来做到这一点?该方法的优点或缺点是什么?

.net c# uuid guid

96
推荐指数
4
解决办法
3万
查看次数

从两个UUID生成复合UUID

如果我有两个UUID,是否有"安全"方法来生成第三个复合UUID.这是对unique这个词的一些统计定义.所以我正在寻找下面的函数f

UUID generatedUUID = f(UUID a, UUID b)
Run Code Online (Sandbox Code Playgroud)

XOR?

uuid

7
推荐指数
1
解决办法
616
查看次数

通过XOR合并两个GUID的结果是否满足成为GUID的条件?

给定两个GUID,A和B,我执行C = A ^B。结果是GUID吗?

(如果是这样,我可以使用它代替生成第三个guid来表示包含由A和B表示的两个对象的对象。)

math guid xor

3
推荐指数
1
解决办法
1993
查看次数

标签 统计

guid ×2

uuid ×2

.net ×1

c# ×1

math ×1

xor ×1