【问题标题】:Deciding on session ID string lengh to assure uniqueness确定会话 ID 字符串长度以确保唯一性
【发布时间】:2009-04-24 20:20:59
【问题描述】:

创建会话 ID 时,通常不会检查 ID 的唯一性。在处理数十亿条记录时,验证唯一性是一项很大的开销。

我想知道随机会话 ID 字符串的长度应该足以在生产服务中依赖于唯一性,例如 Gmail。

欢迎任何其他保持适当会话唯一性的建议。

谢谢,

罗伊。

【问题讨论】:

    标签: session


    【解决方案1】:

    如果您有一个相当好的随机数生成器,那么一个随机的 128 位 ID(例如 GUID)在实践中应该始终是唯一的(从数学上讲,存在重复的可能性很小,但相信我,这不会发生。宇宙将在一个巨大的黑洞中坍塌,然后才会有重复的 GUID。)

    【讨论】:

      【解决方案2】:

      与其随机生成自己的号码,不如……

      • 使用GUID(128 位)
      • 使用包含年、月、日、小时、分钟、秒、毫秒或纳秒的字符串

      如果您使用 128 位随机数,则 3.40282366921e+38 中的 1 有可能获得重复。假设你的数字是真正随机的。

      【讨论】:

        【解决方案3】:

        一些用户数据的 SHA-256 哈希值和当前具有尽可能多的可用资源的全职时间应该可以为您提供足够独特的东西。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-07
          • 2012-09-14
          • 2012-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-27
          相关资源
          最近更新 更多