我有一个带有以下代码的Rails 4项目
crypt = ActiveSupport::MessageEncryptor.new(Rails.application.secrets.secret_key_base)
encrypted_data = crypt.encrypt_and_sign('my confidental data')
加密的数据可以通过以下方式解密:
decrypted_back = crypt.decrypt_and_verify(encrypted_data)
并且我最近将项目更新到了Rails 6,此代码已停止工作,并且数据库中保存了许多加密数据
我如何才能像以前那样工作,而不必从旧的加密方式迁移到像Rails这样的新加密方式
len = ActiveSupport::MessageEncryptor.key_len
salt = SecureRandom.random_bytes(len)
key = ActiveSupport::KeyGenerator.new('password').generate_key(salt, len)
crypt = ActiveSupport::MessageEncryptor.new(key)
encrypted_data = crypt.encrypt_and_sign('my secret data')
crypt.decrypt_and_verify(encrypted_data)
谢谢