Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. import ujson
  2. import urllib
  3. import base64
  4. from Crypto.Cipher import AES
  5. from Crypto.Protocol.KDF import PBKDF2
  6.  
  7. unpad = lambda s : s[:-ord(s[len(s)-1:])]
  8.  
  9. class RailsCookieDecryptor(object):
  10. def __init__(self, secret_key_base, salt="encrypted cookie", keylen=64, iterations=1000):
  11. self.secret = PBKDF2(secret_key_base, salt, keylen, iterations)
  12.  
  13. def get_cookie_data(self, cookie):
  14. cookie = base64.b64decode(urllib.unquote(cookie).split('--')[0])
  15. encrypted_data, iv = map(base64.b64decode, cookie.split('--'))
  16. cipher = AES.new(self.secret[:32], AES.MODE_CBC, iv)
  17. plaintext = unpad(cipher.decrypt(encrypted_data))
  18. return ujson.loads(plaintext)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement