唯一密钥需要多长时间才能安全可靠?

时间:2017-06-10 15:30:10

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

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

mysite.com/invites/XXXXXX

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

Model
    has_secure_token :access_token

当前的Rails方法会创建一个非常长的,不友好的令牌:973acd04bc627d6a0e31200b74e2236

我的问题:对于像Invites这样过期的模型,令牌真的需要那么久,这意味着令牌不是永久性的。理想情况下,我认为使用较短长度的令牌可以提高用户体验,因此令牌对用户来说并不像是一个错误。

是否有人知道有关非永久性令牌(如邀请网址)令牌长度的任何建议?

由于

1 个答案:

答案 0 :(得分:1)

  

令牌真的需要那么久

嗯,并不总是需要。通常在Rails中我们使用SecureRandom来生成这样的唯一令牌。您可以随时获得所需长度的令牌,如下所示。

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