首页 > 解决方案 > 使用 attr_encrypted 使用新密钥加密新数据(覆盖旧数据)

问题描述

我必须编写一个脚本,用虚拟(但有效)数据替换现有数据。该脚本应仅填充已在每条记录上填充的字段。我不应该将虚拟数据放入以前不存在数据的字段中。任何人都可以帮助创建脚本吗?

我正在使用attr_encrypted,我想用新数据覆盖现有数据,使用新密钥。我怎样才能做到这一点?

我的示例代码供您参考:

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

尝试更新时,我收到错误我认为这是由于尝试首先尝试OpenSSL::Cipher::CipherError: bad decrypt的事实-由于密钥不同,这显然不起作用。有什么想法可以编写新数据并使用新的新密钥吗?attr_encrypteddecryptiv

标签: ruby-on-railsencryptionopensslattr-encrypted

解决方案


推荐阅读