This library is an interface to secure random number generators which are suitable for generating session keys in HTTP cookies, etc.
You can use this library in your application by requiring it:
require 'securerandom'
It supports the following secure random number generators:
openssl
/dev/urandom
Win32
SecureRandom is extended by the Random::Formatter module which defines the following methods:
alphanumeric
base64
choose
gen_random
hex
rand
random_bytes
random_number
urlsafe_base64
uuid
These methods are usable as class methods of SecureRandom such as SecureRandom.hex.
If a secure random number generator is not available, NotImplementedError is raised.
The version
# File lib/securerandom.rb, line 54 def alphanumeric(n = nil, chars: ALPHANUMERIC) n = 16 if n.nil? choose(chars, n) end
Compatibility methods for Ruby 3.2, we can remove this after dropping to support Ruby 3.2
# File lib/securerandom.rb, line 49 def bytes(n) return gen_random(n) end
Returns a random binary string containing size bytes.
See Random.bytes
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.