Skip to content

Instantly share code, notes, and snippets.

View flanker's full-sized avatar
💥
jinshuju.net

Feng Zhichao flanker

💥
jinshuju.net
View GitHub Profile
# decode rails session
def verify_and_decrypt_session_cookie(session_value, secret_key_base = Rails.application.secret_key_base)
serializer = ActiveSupport::MessageEncryptor::NullSerializer
key_generator = ActiveSupport::KeyGenerator.new(secret_key_base, iterations: 1000)
secret = key_generator.generate_key('encrypted cookie', 32)
sign_secret = key_generator.generate_key("signed encrypted cookie")
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret, cipher: "aes-256-cbc", serializer: serializer)
encryptor.decrypt_and_verify(CGI::unescape session_value)
end