我正在关注其他几个SO线程,以了解如何手动解密会话字符串...
n//2
问题是,在Rails 5.2中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)
为nil,这导致该步骤失败。我尝试了一个空的secret_key_base
字符串,但是也失败了。
我没有使用新的master_key方法,我仍然选择使用''
答案 0 :(得分:0)
对于试图在Rails 5.2中获得密钥基础的任何人,我都有同样的问题,经过一番研究,我使用了Rails.application.secret_key_base
。这是一个github代码,显示了解密的完成方式。 https://gist.github.com/inopinatus/e523f36b468f94cf6d34410b73fef15e