класс ActiveRecord::Encryption::Cipher
Алгоритм для шифрования и расшифровки объектов Message.
Используется AES-256-GCM. Для недетерминированного шифрования (по умолчанию) генерируется случайный вектор инициализации, а для детерминированного шифрования вектор инициализации выводится из зашифрованного содержимого.
См. Cipher::Aes256Gcm.
Константы
- DEFAULT_ENCODING
Открытые методы экземпляра
# File activerecord/lib/active_record/encryption/cipher.rb, line 25
def decrypt(encrypted_message, key:)
try_to_decrypt_with_each(encrypted_message, keys: Array(key)).tap do |decrypted_text|
decrypted_text.force_encoding(encrypted_message.headers.encoding || DEFAULT_ENCODING)
end
end Расшифровывает переданное Message.
Если key — это Array, будут проверены все ключи; если ни один не подойдёт, возникнет исключение ActiveRecord::Encryption::Errors::Decryption.
# File activerecord/lib/active_record/encryption/cipher.rb, line 15
def encrypt(clean_text, key:, deterministic: false)
cipher_for(key, deterministic: deterministic).encrypt(clean_text).tap do |message|
message.headers.encoding = clean_text.encoding.name unless clean_text.encoding == DEFAULT_ENCODING
end
end Шифрует переданный текст и возвращает зашифрованное Message.
# File activerecord/lib/active_record/encryption/cipher.rb, line 35 def iv_length Aes256Gcm.iv_length end
# File activerecord/lib/active_record/encryption/cipher.rb, line 31 def key_length Aes256Gcm.key_length end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.