Spec-Zone.ru › Ruby on Rails 7.0

класс ActiveRecord::Encryption::KeyGenerator

Родитель:
Object

Утилита для генерации и получения случайных ключей.

Открытые методы экземпляра

derive_key_from(password, length: key_length) Показать исходный код
# File activerecord/lib/active_record/encryption/key_generator.rb, line 32
def derive_key_from(password, length: key_length)
  ActiveSupport::KeyGenerator.new(password).generate_key(ActiveRecord::Encryption.config.key_derivation_salt, length)
end

Вычисляет ключ из заданного пароля. Ключ будет иметь размер в байтах :length (по умолчанию размер, заданный в Cipher).

Сгенерированный ключ будет засаливан значением ActiveRecord::Encryption.key_derivation_salt.

generate_random_hex_key(length: key_length) Показать исходный код
# File activerecord/lib/active_record/encryption/key_generator.rb, line 24
def generate_random_hex_key(length: key_length)
  generate_random_key(length: length).unpack("H*")[0]
end

Возвращает случайный ключ в шестнадцатеричном формате. Ключ будет иметь размер в байтах :length (по умолчанию размер, заданный в Cipher).

Шестнадцатеричный формат удобен для представления ключей как печатного текста. Для максимального использования символов, рекомендуется включать непериодические символы. Шестнадцатеричный формат гарантирует, что сгенерированные ключи могут быть представлены обычным текстом.

Для преобразования обратно в исходную строку с нужным размером:

[ value ].pack("H*")
generate_random_key(length: key_length) Показать исходный код
# File activerecord/lib/active_record/encryption/key_generator.rb, line 10
def generate_random_key(length: key_length)
  SecureRandom.random_bytes(length)
end

Возвращает случайный ключ. Ключ будет иметь размер в байтах :length (по умолчанию размер, заданный в Cipher).

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

Spec-Zone.ru

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