Зашифруйте новые данные новым ключом, используя attr_encrypted (перезаписывая старые данные) - PullRequest
1 голос
/ 10 апреля 2020

Я должен написать скрипт, который заменит существующие данные на фиктивные (но действительные) данные. Сценарий должен заполнять только те поля, которые уже заполнены в каждой записи. Я НЕ должен помещать фиктивные данные в поля, где ранее не было никаких данных Может ли кто-нибудь помочь в создании сценария?

Я использую attr_encrypted, я хотел бы перезаписать существующие данные новыми данными, используя новый ключ. Как я могу это сделать?

Мой пример кода для вашей справки:

License.where.not (license_number: nil) .each do | number |
number.update_attribute (: license_number , Faker :: Number.number (6)) end

При попытке обновления у меня возникает ошибка OpenSSL::Cipher::CipherError: bad decrypt. Я полагаю, это связано с тем, что attr_encrypted сначала пытается decrypt, что явно не будет работать, потому что ключ отличается. Есть идея написать новые данные и iv с новым новым ключом?

...