.NET短唯一标识符

133

我需要在.NET中使用一个唯一标识符(由于太长,无法使用GUID)。

人们认为这里使用的算法是一个好的选择,还是您有其他建议?


8
有多短?有多独一无二?如果基于以太网适配器的硬件地址,GUID就能保证是独一无二的;纯数学计算生成的任何东西都不能被证明是独一无二的——只是极有可能独一无二(概率极高)。 - Jon
以下是有关编程的内容,请将其从英语翻译成中文。仅返回翻译后的文本:长度为15,并尽可能独特。 - Noel
6
长度是15个什么?15个字节吗?如果是的话,为什么不从GUID中去掉一个字节呢? - KristoferA
如果您不需要超过63位密钥,可以使用长整型获得相同的结果 https://github.com/joshclark/Flakey - Chris Marisic
4
在GUID中删除一个字节会极大地增加密钥冲突的可能性。如果您删除了错误顺序的字节,那么它可能会使密钥冲突变成必然发生的情况。 - Chris Marisic
请在此处查看我的答案:https://dev59.com/w3M_5IYBdhLWcg3wQQpd#56291295 - Vinod Srivastav
22个回答

-3

你可以使用

code = await UserManager.GenerateChangePhoneNumberTokenAsync(input.UserId, input.MobileNumber);

只有6个漂亮的字符,599527143354

当用户验证它时,简单地执行

var result = await UserManager.VerifyChangePhoneNumberTokenAsync(input.UserId, input.Token, input.MobileNumber);

希望这能对你有所帮助。

我总是保持我的密码简单、容易记忆。 - Toolkit
3
这个应该被更多人踩。 - Robert Perry

-8
Guid.NewGuid().ToString().Split('-').First()

6
不行。 - Kasey Speakman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接