config/initializers/sessoin_store.rb
の:secretとか。
# ワンライナー ruby -rsecurerandom -e 'puts SecureRandom.hex(16)' #irb require 'securerandom' SecureRandom.hex(n) #default 16
中身はこんな感じ。
/opt/local/lib/ruby/1.8/securerandom.rb
def self.hex(n=nil) random_bytes(n).unpack("H*")[0] end def self.random_bytes(n=nil) n ||= 16 if defined? OpenSSL::Random return OpenSSL::Random.random_bytes(n) end if !defined?(@has_urandom) || @has_urandom @has_urandom = false flags = File::RDONLY flags |= File::NONBLOCK if defined? File::NONBLOCK flags |= File::NOCTTY if defined? File::NOCTTY flags |= File::NOFOLLOW if defined? File::NOFOLLOW begin File.open("/dev/urandom", flags) {|f| unless f.stat.chardev? raise Errno::ENOENT end @has_urandom = true ret = f.readpartial(n) if ret.length != n raise NotImplementedError, "Unexpected partial read from random device" end return ret } rescue Errno::ENOENT raise NotImplementedError, "No random device" end end raise NotImplementedError, "No random device" end