класс ActiveRecord::Encryption::KeyGenerator
Утилита для генерации и получения случайных ключей.
Открытые методы экземпляра
# 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.
# 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*")
# 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.