我正在跟踪其他几个so线程,以了解如何手动解密会话字符串…
cookie = CGI::unescape(params[:session])
salt = Rails.application.config.action_dispatch.encrypted_cookie_salt
signed_salt = Rails.application.config.action_dispatch.encrypted_signed_cookie_salt
key_generator = ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base, iterations: 1000)
secret = key_generator.generate_key(salt)[0, ActiveSupport::MessageEncryptor.key_len]
sign_secret = key_generator.generate_key(signed_salt)
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret)
decrypted_session = encryptor.decrypt_and_verify(cookie)
问题是,在Rails 5.2中
secret_key_base
是零,这会导致这一步失败。我试过空的
''
但这也失败了。
我没有使用新的master_key方法,我仍然选择使用
秘钥库