在Rails 3中,会话cookie可以很容易地用base64解码来解码,但是在Rails 4中,cookie是编码和加密的。
我想知道如何读取rails 4 cookie,它是编码的,也是加密的(假设我们知道密钥库)。
谢谢,
发布于 2016-01-27 11:46:59
Rails 4使用AES-256加密基于应用程序的secret_token_base密钥的cookie。
下面是解密会话cookie的一般方案:
我找不到一个可以轻松解密消息的网站(欢迎您提供建议),通过编程可以这样做:
secret = OpenSSL::PKCS5.pbkdf2_hmac_sha1(app_secret_token, 'encrypted cookie', 1000, 64)
encrypted_message = Base64.decode64(cookie_str)
cipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
encrypted_data, iv = encrypted_message.split("--").map {|v| ::Base64.strict_decode64(v)}
cipher.decrypt
cipher.key = secret
cipher.iv = iv
decrypted_data = cipher.update(encrypted_data)
decrypted_data << cipher.final
Marshal.load(decrypted_data)几个注意事项:
ActiveSupport::MessageEncryptor几乎完全相同,它是由ActionDispatch::Cookies中间程序使用的。https://stackoverflow.com/questions/35013568
复制相似问题