module

ActiveSupport::SecureRandom

rails latest stable

Module deprecated or moved

This module is deprecated or moved on the latest stable version. The last existing version (v3.0.9) is shown here.

Secure random number generator interface.

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

It supports following secure random number generators.

  • openssl

  • /dev/urandom

  • Win32

Note: This module is based on the SecureRandom library from Ruby 1.9, revision 18786, August 23 2008. It’s 100% interface-compatible with Ruby 1.9’s SecureRandom library.

Example

# random hexadecimal string.
p SecureRandom.hex(10) # => "52750b30ffbc7de3b362"
p SecureRandom.hex(10) # => "92b15d6c8dc4beb5f559"
p SecureRandom.hex(11) # => "6aca1b5c58e4863e6b81b8"
p SecureRandom.hex(12) # => "94b2fff3e7fd9b9c391a2306"
p SecureRandom.hex(13) # => "39b290146bea6ce975c37cfc23"
...

# random base64 string.
p SecureRandom.base64(10) # => "EcmTPZwWRAozdA=="
p SecureRandom.base64(10) # => "9b0nsevdwNuM/w=="
p SecureRandom.base64(10) # => "KO1nIU+p9DKxGg=="
p SecureRandom.base64(11) # => "l7XEiFja+8EKEtY="
p SecureRandom.base64(12) # => "7kJSM/MzBJI+75j8"
p SecureRandom.base64(13) # => "vKLJ0tXBHqQOuIcSIg=="
...

# random binary string.
p SecureRandom.random_bytes(10) # => "\016\t{\370g\310pbr\301"
p SecureRandom.random_bytes(10) # => "\323U\030TO\234\357\020\a\337"
...

Files

  • activesupport/lib/active_support/secure_random.rb