【发布时间】:2016-03-26 11:15:23
【问题描述】:
我想为我的博客应用程序中的帖子生成唯一的帖子标识符。
目前我正在使用 SecureRandom.hex(10) 为我的博客网站生成唯一的帖子标识符,但我不确定 SecureRandom 是否安全。
还有其他方法吗?
【问题讨论】:
我想为我的博客应用程序中的帖子生成唯一的帖子标识符。
目前我正在使用 SecureRandom.hex(10) 为我的博客网站生成唯一的帖子标识符,但我不确定 SecureRandom 是否安全。
还有其他方法吗?
【问题讨论】:
如果有人只寻找唯一的数字标记。我宁愿使用基于时间的方法。对于不太频繁的请求(每秒最多一个)。你可以使用
Time.now.to_i
在字符串Time.now.to_i.to_s 中获取它
如果您在生成令牌时处理频繁的请求(每秒数千个)。使用浮动对话
Time.now.to_f #1532415770.0032046
要以字符串形式获取它,您可以使用Time.now.to_f.to_s.gsub(".", ""),尽管不推荐。
在当前宇宙中,上述值的忏悔机会接近于零。
【讨论】:
来自 Ruby 文档:
这个库是一个安全随机数生成器的接口,适用于在HTTP cookie等中生成会话密钥。
我有类似的问题,我使用了 Digest 库。
Digest::MD5.hexdigest(post.title + post.created_at.to_s) #=> "b4809d..."
【讨论】:
ri Digest。我觉得用SecureRandom就好了。
bundle install
gem install digest,它会返回“错误:在任何存储库中都找不到有效的 gem 'digest' (>= 0)”