Spec-Zone.ru › Ruby on Rails 7.1

класс ActiveRecord::Encryption::Cipher

Родитель:
Объект

Алгоритм, используемый для шифрования и дешифрования Message объектов.

Использует AES-256-GCM. Он сгенерирует случайный IV для недетерминированного шифрования (по умолчанию) или выведет вектор инициализации из зашифрованного содержимого для детерминированного шифрования.

См. Cipher::Aes256Gcm.

Константы

DEFAULT_ENCODING

Публичные методы экземпляров

decrypt(encrypted_message, key:) Показать исходный код
# 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 если ни один не работает.

encrypt(clean_text, key:, deterministic: false) Показать исходный код
# 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.

iv_length() Показать исходный код
# File activerecord/lib/active_record/encryption/cipher.rb, line 35
def iv_length
  Aes256Gcm.iv_length
end
key_length() Показать исходный код
# 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.

Spec-Zone.ru

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