如何在 Rails 4 上为 Ruby 中的 post 生成唯一的随机 ID?

How to generate a unique random id for post in Ruby on Rails 4?

我想在我的博客应用程序中为 post 生成唯一的 post 标识符。

目前我正在使用 SecureRandom.hex(10) 为我的博客网站生成唯一的 post 标识符,但我不确定用于此目的的 SecureRandom 是否安全。

还有其他方法吗?

来自 Ruby 文档:

This library is an interface for secure random number generator which is suitable for generating session key in HTTP cookies, etc.

我有类似的问题,我使用了 Digest 库。

Digest::MD5.hexdigest(post.title + post.created_at.to_s) #=> "b4809d..."

如果有人正在寻找唯一的数字标记。我宁愿使用基于时间的方法。对于不太频繁的请求(每秒最多一个)。您可以使用

Time.now.to_i

在字符串中获取它Time.now.to_i.to_s 如果您在生成令牌时处理频繁的请求(每秒数千次)。使用浮动对话

Time.now.to_f #1532415770.0032046

要在字符串中获取它,您可以使用 Time.now.to_f.to_s.gsub(".", "") 尽管不推荐。

当前宇宙中以上数值的忏悔机率接近于零。