securerandom.rb

Path: lib/compat/securerandom.rb
Last Update: Wed May 15 15:18:27 +0000 2013

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

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" …

Required files

openssl   Win32API  

[Validate]