На самом деле я начал с шифрования поля user_pass
жестко закодированным ключом.
class Credential < ApplicationRecord
..
attr_encrypted :user_pass, key: 'This is a key that is 256 bits!!'
..
end
У меня уже есть данные, зашифрованные этим ключом.Теперь я не хочу сохранять ключ в жестко запрограммированном формате, поэтому сохраняю половину ключа в файловой системе и другую половину в таблице и объединяю их.
class Credential < ApplicationRecord
..
attr_encrypted :user_pass, key: :encryption_key
..
def encryption_key
Rails.root.join('private', 'key').read + Setting.where(name: 'key').last.value
end
end
Как зашифровать уже зашифрованные данные с помощьютекущий ключ?