代码之家  ›  专栏  ›  技术社区  ›  Kibbee

您猜测可能生成的GUID有多容易?

  •  27
  • Kibbee  · 技术社区  · 15 年前

    guid在为web应用程序创建会话密钥时被大量使用。我一直想知道这种做法的安全性。由于GUID是基于来自机器的信息、时间以及其他一些因素生成的,因此很难猜测将来可能出现的GUID。假设您启动了1000个或10000个新会话,以获得生成的GUI的良好数据集。这会使生成可能用于另一个会话的GUID变得更容易吗。您甚至不必猜测特定的GUID,只需继续尝试在特定时间段生成的GUID即可。

    6 回复  |  直到 15 年前
        1
  •  22
  •   Walter Stabosz    8 年前

    这是我的一些东西 Wikipedia ( original source

    时间可以通过 例如,第三组数字 {2f1e4fc0-81fd-11da-9156-00036a0f876a}。

    V4 guid使用更晚的算法, 这是一个伪随机数。这些 实例 {38a52be4-9352-453e-af97-5c3b448652f0}。 更具体地说,“data3”位 模式应为000XXXXXXXXXX英寸 在第二个。密码分析 WinAPI GUID生成器显示, 因为V4 guid的顺序是 给定初始状态 函数返回的GUID uuiddreate 1 . 不应用于密码学,例如。 g、 ,作为随机键。

        2
  •  11
  •   Davy8    15 年前

    维基百科的其他花絮:

    OSF指定的 用户的网卡MAC地址为 用作最后一组数据的基础 GUID数字,这意味着,例如, 创建它的计算机。这 梅丽莎蠕虫的创造者。最 其他数字的百分比基于 生成GUID时的时间。

        3
  •  10
  •   Tamas Czinege    15 年前

    .NET Web应用程序调用Guid.NewGuid()来创建Guid,该Guid最终会调用 CoCreateGuid() COM函数在堆栈中更深的几个帧。

    从MSDN库:

    协同创建GUID RPC函数 uuiddreate ,这创造了 GUID,一个全局唯一的128位 整数使用 协同创建GUID 当你需要一个绝对独特的 分布式系统中的持久标识符 环境。到了非常高的程度 当然,此函数返回一个 相同或任何其他系统 相同的值。

    UuidCreate :

    这个 uuiddreate UUID 这无法追溯到 服务器的以太网/令牌环地址 生成它的计算机。信息技术 也不能与其他关联 UUID

        4
  •  5
  •   John Topley    15 年前

    如果有人持续使用连续的guid流攻击服务器,那么这将是一种拒绝服务攻击。

    有人猜测GUID的可能性几乎为零。

        5
  •  1
  •   Dickon Reed    15 年前

    视情况而定。如果guid的设置是合理的,例如使用salted安全散列,并且您有很多位,那么这是很困难的。如果guid简短而明显,那么它就很弱。

        6
  •  1
  •   Viktor Stolbovoy    13 年前

    非常高的确定度 应该