Spec-Zone.ru › Ruby on Rails 6.0

модуль SecureRandom

Константы

BASE36_ALPHABET
BASE58_ALPHABET

Методы публичного класса

base36(n = 16) Показать исходный код
# File activesupport/lib/active_support/core_ext/securerandom.rb, line 38
def self.base36(n = 16)
  SecureRandom.random_bytes(n).unpack("C*").map do |byte|
    idx = byte % 64
    idx = SecureRandom.random_number(36) if idx >= 36
    BASE36_ALPHABET[idx]
  end.join
end

::base36 генерирует случайную строку в формате base36 строчными буквами.

Аргумент n определяет длину генерируемой случайной строки.

Если n не указан или равен nil, используется значение 16. В будущем оно может быть больше. Этот метод может быть использован вместо base58, если необходим детерминированный ключ.

Результат будет содержать символы в нижнем регистре.

p SecureRandom.base36 # => "4kugl2pdqmscqtje"
p SecureRandom.base36(24) # => "77tmhrhjfvfdwodq8w7ev2m7"
base58(n = 16) Показать исходный код
# File activesupport/lib/active_support/core_ext/securerandom.rb, line 19
def self.base58(n = 16)
  SecureRandom.random_bytes(n).unpack("C*").map do |byte|
    idx = byte % 64
    idx = SecureRandom.random_number(58) if idx >= 58
    BASE58_ALPHABET[idx]
  end.join
end

::base58 генерирует случайную строку в формате base58.

Аргумент n определяет длину генерируемой случайной строки.

Если n не указан или равен nil, используется значение 16. В будущем оно может быть больше.

Результат может содержать буквенно-цифровые символы, за исключением 0, O, I и l.

p SecureRandom.base58 # => "4kUgL2pdQMSCQtjE"
p SecureRandom.base58(24) # => "77TMHrHJFvFDwodq8w7Ev2m7"

© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API