随机字符串vs Guid

本文关键字:Guid vs 字符串 随机 | 更新日期: 2023-09-27 18:16:56

我需要一个32个字符的随机字符串作为散列一些值的盐。这个随机字符串是为每个用户生成的。

为每个用户生成一个向导和使用RNGCryptoServiceProvider有什么区别?

随机字符串vs Guid

这就是生成一个唯一键和生成32个随机字符之间的区别。差不多就是这样。做你想做的事。

如果您需要某种唯一标识该用户的方法,即使数据库被合并,也可以使用GUID。如果您需要一个salt来散列密码,那么使用一个随机的byte[]

看完这篇文章,我明白了其中的区别http://blogs.msdn.com/b/oldnewthing/archive/2012/05/23/10309199.aspx

guid的设计是唯一的,而不是随机的

GUID生成算法设计为唯一性。它不是为随机性或不可预测性而设计的。的确,如果你看看之前的讨论,你可以看到所谓的算法1是非随机的,完全可以预测的。如果使用算法1的GUID生成器将guid分配给候选对象,您会发现guid按数字升序分配(因为时间戳增加)。客户提出的算法很可能会以选择第一批进入系统的N个人担任陪审员在32位定时器翻转之后。绝对不是随机的

类似地,想要使用GUID生成密码的人会发现密码是完全可预测的,如果您知道GUID是什么时候生成的,是哪台计算机生成的GUID(您可以通过查看来自的最后六个字节来获得)其他密码(guid)。完全可预测的密码可能是不是个好主意。