【问题标题】:What length does a unique key need to be secure and reliably unique?唯一密钥需要多长才能安全且可靠地唯一?
【发布时间】:2017-11-12 11:45:58
【问题描述】:

我希望为我的 Invites 模型生成一个唯一的密钥/令牌。用法示例:

mysite.com/invites/XXXXXX

XXXXXX 是唯一的密钥/令牌...我正在使用 Rails 5 作为我的 API,并且了解到 Rails 5 有一种新的方式来生成安全令牌,如下所示:

Model
    has_secure_token :access_token

当前的 Rails 方法会创建一个非常长且不友好的标记:973acd04bc627d6a0e31200b74e2236

我的问题:对于像 Invites 这样过期的模型,令牌真的需要那么长吗,这意味着令牌不是永久性的。理想情况下,我相信 UX 使用较短的令牌会更好,因此令牌对用户来说不会像错误。

有人知道关于邀请 URL 等非永久性令牌的令牌长度的任何建议吗?

【问题讨论】:

    标签: ruby-on-rails token ruby-on-rails-5


    【解决方案1】:

    令牌真的需要那么长吗

    嗯,它并不总是需要。通常在 Rails 中,我们使用SecureRandom 来生成这样的唯一标记。您始终可以像下面这样获得所需长度的令牌并使用它们。

    SecureRandom.hex(10) # => "52750b30ffbc7de3b362"
    SecureRandom.hex(3)  #=> "71edbe"
    

    【讨论】:

    • 当然,越短,重复的机会就越大。
    猜你喜欢
    • 2015-10-05
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 2010-09-08
    • 2023-04-04
    • 2020-07-28
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多