【发布时间】:2014-04-10 00:20:11
【问题描述】:
对于我的分布式存储密钥,我想使用 UUID v4,而 .NET Framework 的 System.Guid 正是这样。但是,如果 Mono 提供相同的 v4,我现在无法测试? C#/F# 中是否有独立的 v4 生成器?是否有说明 .NET/Mono GUID 始终为版本 4 的规范? (谷歌搜索,找不到)
此外,我想对 GUID v4 进行一些修改。鉴于它的格式是xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,我想用自定义的十六进制数字替换 4。当我的 GUID 在我的系统中生成时,我需要它来嵌入一种纪元信息,并且我知道纪元的最大数量永远不会达到 HEX f。
问题是这是否安全且面向未来?您是否知道有任何软件以某种方式验证 Guid,而不是“它必须是 128 位”?我害怕把例如5 而不是 4 可能会破坏某些东西,例如PostgreSQL uuid 列类型或类似情况。而且我无法测试所有可能发生这种情况的情况。我用System.Guid.Parse() 测试了所有数字而不是4,它工作正常,但我不知道这是运气还是规范。
【问题讨论】:
-
很明显,移植单声道源不到10分钟……第二部分还是个问题。
标签: c# postgresql mono guid uuid