首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GUID在可预测性方面有多安全?

GUID在可预测性方面有多安全?
EN

Stack Overflow用户
提问于 2010-12-23 09:38:33
回答 3查看 4.2K关注 0票数 8

我们目前正在使用.NET的Guid.NewGuid()来生成激活代码和API密钥。我不知道这是否会造成安全问题,因为他们的算法是开放的。

.NET Guid使用Win32 CoCreateGuid,我不知道它的内部(可能是MAC地址+时间戳?)。有人能从第一个人中得到第二个GUID吗?或者他能用一些聪明的猜测来判断它吗?或者随机性足够好以至于搜索空间变得太大了?

生成随机密钥存在冲突问题,在添加到数据库之前需要进行二次检查。这就是为什么我们坚持使用GUID,但我不确定它们的安全性。

以下是UUIDGEN连续4项产出:

c44dc549-5d92-4330-b451-b29a87848993 d56d4c8d-bfba-4b95-8332-e86d7f204c1c 63cdf 958-9d5a-4b63-ae65-74e4237888ea 6fd09369-0fbd-456d-9c06-27fef4c8eca5

下面是Guid.NewGuid()给出的4张

0652b193-64c6-4c5e-ad06-9990e1ee3791 374b6313-34a0-4c28-b336-bb2ecd879d0f 3c5a345f-3865-4420-a62c-1 cdfd2fd9 5b09d7dc-8546-4ccf-9c85-de0bf4ff43bf0

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-23 09:56:25

GUID是相当随机的,但它们并不打算用作随机数--它们的唯一目的是唯一地标识实体,这样它们就可以被预测。

使用System.Security.Cryptography.RandomNumberGenerator代替

票数 11
EN

Stack Overflow用户

发布于 2010-12-23 12:43:40

任何键都有一个有限的空间,一个足够坚定的人/组能够并将生成所有的组合。重要的不是关键,而是你如何组织、它的验证以及它的授权。如果您完全通过Guid来操作验证/授权,那么这可能并不合适,因为潜在的所有Guid都是有效的,您最好使用类似SeriousBit灭弧室的东西。如果您使用的身份验证机制记录了某个特定的Guid已经发出,并且它现在已经被用于激活,那么Guid并不是一个糟糕的选择,因为它是一个相当大的密钥空间。

票数 2
EN

Stack Overflow用户

发布于 2010-12-23 09:48:45

产生guids的机制有多种,有些使用MAC地址,有些仅使用纯随机数生成。如果使用的话,amc地址在GUID中应该是显而易见的--它没有以任何方式散列。

编辑:但条件,有点蹩脚的答案,因为这里我说的是通用的guid生成,而不是一个可能的女士阿尔戈混淆它。正在调查,如果没有用就删除..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4517497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档