easyctf-2017/server/api/utils.py

32 lines
926 B
Python
Raw Normal View History

2015-12-23 03:44:51 +00:00
import datetime
2015-12-23 23:23:18 +00:00
import json
2015-12-23 03:44:51 +00:00
import random
import string
2015-12-23 23:23:18 +00:00
import traceback
2016-01-06 06:15:57 +00:00
import unicodedata
2015-12-23 03:44:51 +00:00
2015-12-23 23:23:18 +00:00
from functools import wraps
2015-12-23 03:44:51 +00:00
from werkzeug.security import generate_password_hash, check_password_hash
def hash_password(s):
2015-12-23 23:23:18 +00:00
return generate_password_hash(s)
2015-12-23 03:44:51 +00:00
def check_password(hashed_password, try_password):
2015-12-23 23:23:18 +00:00
return check_password_hash(hashed_password, try_password)
2015-12-23 03:44:51 +00:00
2016-01-06 06:15:57 +00:00
def generate_string(length=32, alpha=string.hexdigits):
return "".join([random.choice(alpha) for x in range(length)])
2015-12-23 03:44:51 +00:00
def unix_time_millis(dt):
2015-12-23 23:23:18 +00:00
epoch = datetime.datetime.utcfromtimestamp(0)
return (dt - epoch).total_seconds() * 1000.0
2015-12-23 03:44:51 +00:00
def get_time_since_epoch():
2015-12-23 23:23:18 +00:00
return unix_time_millis(datetime.datetime.now())
2016-01-06 06:15:57 +00:00
def flat_multi(multidict):
flat = {}
for key, values in multidict.items():
value = values[0] if type(values) == list and len(values) == 1 else values
flat[key] = unicodedata.normalize("NFKD", value).encode("ascii", "ignore")
return flat