For excessively paranoid client authentication.
Updated Apr 5 2019:
because this is a gist from 2011 that people stumble into and maybe you should AES instead of 3DES in the year of our lord 2019.
some other notes:
|>>> import pytz|
|>>> from datetime import datetime|
|>>> time_zone = pytz.timezone('Asia/Singapore')|
|>>> my_time = datetime.utcnow()|
|datetime.datetime(2012, 9, 7, 12, 6, 15, 56631)|
|datetime.datetime(2012, 9, 7, 12, 6, 15, 56631, tzinfo=<UTC>)|
|>>> my_time = my_time.replace(tzinfo=pytz.utc)|
You'll probably be working with a single smartcard, so you'll want only one primary key (