2021-01-16 22:15:10 +08:00
|
|
|
import hashlib
|
|
|
|
|
import random
|
|
|
|
|
import uuid
|
2021-01-19 22:20:11 +08:00
|
|
|
import time
|
2021-01-16 22:15:10 +08:00
|
|
|
|
|
|
|
|
ValidUsername = set(map(lambda x:chr(x), range(48, 58, 1))) | set(map(lambda x:chr(x), range(65, 91, 1))) | set(map(lambda x:chr(x), range(97, 123, 1)))
|
|
|
|
|
ValidPassword = set(map(lambda x:chr(x), range(33, 127, 1)))
|
|
|
|
|
|
|
|
|
|
def IsValidUsername(strl):
|
|
|
|
|
return (len(set(strl) - ValidUsername) == 0)
|
|
|
|
|
|
|
|
|
|
def IsValidPassword(strl):
|
|
|
|
|
return (len(set(strl) - ValidPassword) == 0)
|
|
|
|
|
|
|
|
|
|
def ComputePasswordHash(password):
|
|
|
|
|
s = hashlib.sha256()
|
2021-01-19 22:20:11 +08:00
|
|
|
s.update(password.encode('utf-8'))
|
2021-01-16 22:15:10 +08:00
|
|
|
return s.hexdigest()
|
|
|
|
|
|
|
|
|
|
def GenerateUUID():
|
|
|
|
|
return str(uuid.uuid1())
|
|
|
|
|
|
|
|
|
|
def GenerateToken(username):
|
|
|
|
|
s = hashlib.sha256()
|
2021-01-19 22:20:11 +08:00
|
|
|
s.update(username.encode('utf-8'))
|
2021-01-24 14:38:08 +08:00
|
|
|
s.update(GenerateUUID().encode('utf-8'))
|
2021-01-16 22:15:10 +08:00
|
|
|
return s.hexdigest()
|
|
|
|
|
|
|
|
|
|
def GenerateSalt():
|
|
|
|
|
return random.randint(0, 6172748)
|
|
|
|
|
|
|
|
|
|
def ComputePasswordHashWithSalt(passwordHashed, salt):
|
|
|
|
|
s = hashlib.sha256()
|
2021-01-19 22:20:11 +08:00
|
|
|
s.update((passwordHashed + str(salt)).encode('utf-8'))
|
|
|
|
|
return s.hexdigest()
|
|
|
|
|
|
|
|
|
|
def GetCurrentTimestamp():
|
2021-01-24 14:38:08 +08:00
|
|
|
return int(time.time())
|
|
|
|
|
|
|
|
|
|
def GetTokenExpireOn():
|
2021-02-03 16:08:40 +08:00
|
|
|
return GetCurrentTimestamp() + 60 * 60 * 24 * 2 # add 2 day from now
|
|
|
|
|
|
|
|
|
|
def Str2Bool(strl):
|
|
|
|
|
return strl.lower() == 'true'
|
|
|
|
|
|