Mr_hEx

Flask Cookie encode and decode with Key !!

Jun 7th, 2021 (edited)
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. #https://github.com/noraj/flask-session-cookie-manager/blob/master/flask_session_cookie_manager3.py
  2. #python3 -m pip install flask
  3. #python3 -m pip install itsdangerous
  4.  
  5. import zlib
  6. from itsdangerous import base64_decode
  7. import ast
  8. from flask.sessions import SecureCookieSessionInterface
  9.  
  10.  
  11. class MockApp(object):
  12.  
  13.     def __init__(self, secret_key):
  14.         self.secret_key = secret_key
  15.  
  16.  
  17.  
  18. def encode(secret_key, session_cookie_structure):
  19.  
  20.     try:
  21.        app = MockApp(secret_key)
  22.  
  23.        session_cookie_structure = dict(ast.literal_eval(session_cookie_structure))
  24.        si = SecureCookieSessionInterface()
  25.        s = si.get_signing_serializer(app)
  26.  
  27.        return s.dumps(session_cookie_structure)
  28.     except Exception as e:
  29.         return "[Encoding error] {}".format(e)
  30.         raise e
  31.  
  32.  
  33. def decode(session_cookie_value, secret_key=None):
  34.     try:
  35.         if(secret_key==None):
  36.            compressed = False
  37.            payload = session_cookie_value
  38.  
  39.            if payload.startswith('.'):
  40.                compressed = True
  41.                payload = payload[1:]
  42.  
  43.            data = payload.split(".")[0]
  44.  
  45.            data = base64_decode(data)
  46.            if compressed:
  47.                data = zlib.decompress(data)
  48.  
  49.            return data
  50.         else:
  51.              app = MockApp(secret_key)
  52.              si = SecureCookieSessionInterface()
  53.              s = si.get_signing_serializer(app)
  54.  
  55.              return s.loads(session_cookie_value)
  56.     except Exception as e:
  57.            return "[Decoding error] {}".format(e)
  58.            raise e
  59.  
  60. SECRET_KEY =  'Sup3rUnpredictableK3yPleas3Leav3mdanfe12332942'
  61.  
  62. print(decode("eyJBZG1pbiI6ImFkbWluIiwidGVzdCI6W119.YL5ioA.dSRlyDjrksMaHk-aM7xuO1KjGXg",SECRET_KEY))
Add Comment
Please, Sign In to add comment