create_new_id()
private
Create a new session id.
The session id is a secure random number by SecureRandom if possible, otherwise an SHA512
hash based upon the time, a random number, and a constant string. This
routine is used internally for automatically generated session ids.
Show source
def create_new_id
require 'securerandom'
begin
session_id = SecureRandom.hex(16)
rescue NotImplementedError
require 'digest'
d = Digest('SHA512').new
now = Time::now
d.update(now.to_s)
d.update(String(now.usec))
d.update(String(rand(0)))
d.update(String($$))
d.update('foobar')
session_id = d.hexdigest[0, 32]
end
session_id
end