我有一个用GUID就能很容易解决的问题。
特别是,对于密码重置工作流,我希望向用户的电子邮件发送一个GUID令牌,并让他们使用该令牌重置其密码。因为GUID是唯一的,所以这是非常安全的,并且省去了我给人发电子邮件密码的麻烦。
我注意到有一个uuid gem @ rubyforge,但它看起来很旧,它将内容写入文件系统。
有没有人知道其他可以创建全局唯一标识符的gem?
我知道我可以退回到:
(0..16).to_a.map{ |a| rand(16).to_s(16) }.join
但它看起来并不是一个合适的GUID ...
发布于 2012-03-06 04:45:44
从Ruby 1.9开始,uuid生成是内置的。使用SecureRandom.uuid
函数。
例如:
require 'securerandom'
SecureRandom.uuid # => "96b0a57c-d9ae-453f-b56f-3b154eb10cda"
发布于 2009-07-14 15:08:31
How to create small, unique tokens in Ruby
>> require 'digest'
=> []
>> Digest::SHA1.hexdigest("some-random-string")[8..16]
=> "2ebe5597f"
>> SecureRandom.base64(8).gsub("/","_").gsub(/=+$/,"")
=> "AEWQyovNFo0"
>> rand(36**8).to_s(36)
=> "uur0cj2h"
发布于 2013-09-04 16:55:43
创建正确的mysql varchar 32 GUID
SecureRandom.uuid.gsub('-','').upcase
https://stackoverflow.com/questions/1117584
复制相似问题