Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ujson
- import urllib
- import base64
- from Crypto.Cipher import AES
- from Crypto.Protocol.KDF import PBKDF2
- unpad = lambda s : s[:-ord(s[len(s)-1:])]
- class RailsCookieDecryptor(object):
- def __init__(self, secret_key_base, salt="encrypted cookie", keylen=64, iterations=1000):
- self.secret = PBKDF2(secret_key_base, salt, keylen, iterations)
- def get_cookie_data(self, cookie):
- cookie = base64.b64decode(urllib.unquote(cookie).split('--')[0])
- encrypted_data, iv = map(base64.b64decode, cookie.split('--'))
- cipher = AES.new(self.secret[:32], AES.MODE_CBC, iv)
- plaintext = unpad(cipher.decrypt(encrypted_data))
- return ujson.loads(plaintext)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement