Examples ======== We start with a simple example. Before we proceed let's setup a `virtualenv`_ environment:: $ virtualenv env $ env/bin/easy_install wheezy.security[pycrypto] Protecting Information ---------------------- Let's assume we would like to protect some sensitive information, e.g. user id. We can encrypt it, add a hash to prove validity and finally say that this value is valid for 20 minutes only:: from wheezy.security.crypto import Ticket ticket = Ticket(max_age=1200, salt='p5sArbHFZvxgeEJFrM9h') Once you have ticket you can encode any string:: protected_value = ticket.encode('hello') Decode ``protected_value`` this way:: value = ticket.decode(protected_value) User Principal -------------- Ticket can be used to protect user principal over network (e.g. in http cookie):: from wheezy.security import Principal principal = Principal( id='125134788', roles=['user'], alias='John Smith') secure_value = ticket.encode(principal.dump()) Server side now restores this information:: from wheezy.security import ANONYMOUS from wheezy.security import Principal principal_dump = ticket.decode(secure_value) if principal_dump: principal = Principal.load(principal_dump) else: principal = ANONYMOUS .. _`virtualenv`: http://pypi.python.org/pypi/virtualenv