refactor: modify backend for better understand
This commit is contained in:
@@ -3,50 +3,62 @@ import random
|
||||
import uuid
|
||||
import time
|
||||
import math
|
||||
import re
|
||||
|
||||
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)))
|
||||
USERNAME_PATTERN: re.Pattern = re.compile("^[0-9A-Za-z]+$")
|
||||
PASSWORD_PATTERN: re.Pattern = re.compile("^[!-~]+$")
|
||||
|
||||
def IsValidUsername(strl):
|
||||
return (len(set(strl) - ValidUsername) == 0)
|
||||
|
||||
def IsValidPassword(strl):
|
||||
return (len(set(strl) - ValidPassword) == 0)
|
||||
def IsValidUsername(strl: str) -> bool:
|
||||
return USERNAME_PATTERN.match(strl) is not None
|
||||
|
||||
def ComputePasswordHash(password):
|
||||
|
||||
def IsValidPassword(strl: str) -> bool:
|
||||
return PASSWORD_PATTERN.match(strl) is not None
|
||||
|
||||
|
||||
def ComputePasswordHash(password: str) -> str:
|
||||
s = hashlib.sha256()
|
||||
s.update(password.encode('utf-8'))
|
||||
s.update(password.encode("utf-8"))
|
||||
return s.hexdigest()
|
||||
|
||||
def GenerateUUID():
|
||||
|
||||
def GenerateUUID() -> str:
|
||||
return str(uuid.uuid1())
|
||||
|
||||
def GenerateToken(username):
|
||||
|
||||
def GenerateToken(username: str) -> str:
|
||||
s = hashlib.sha256()
|
||||
s.update(username.encode('utf-8'))
|
||||
s.update(GenerateUUID().encode('utf-8'))
|
||||
s.update(username.encode("utf-8"))
|
||||
s.update(GenerateUUID().encode("utf-8"))
|
||||
return s.hexdigest()
|
||||
|
||||
def GenerateSalt():
|
||||
|
||||
def GenerateSalt() -> int:
|
||||
return random.randint(0, 6172748)
|
||||
|
||||
def ComputePasswordHashWithSalt(passwordHashed, salt):
|
||||
|
||||
def ComputePasswordHashWithSalt(passwordHashed: str, salt: int) -> str:
|
||||
s = hashlib.sha256()
|
||||
s.update((passwordHashed + str(salt)).encode('utf-8'))
|
||||
s.update((passwordHashed + str(salt)).encode("utf-8"))
|
||||
return s.hexdigest()
|
||||
|
||||
def GetCurrentTimestamp():
|
||||
|
||||
def GetCurrentTimestamp() -> int:
|
||||
return int(time.time())
|
||||
|
||||
def GetTokenExpireOn():
|
||||
return GetCurrentTimestamp() + 60 * 60 * 24 * 2 # add 2 day from now
|
||||
|
||||
def Str2Bool(strl):
|
||||
return strl.lower() == 'true'
|
||||
def GetTokenExpireOn() -> int:
|
||||
return GetCurrentTimestamp() + 60 * 60 * 24 * 2 # add 2 day from now
|
||||
|
||||
def GCD(a, b):
|
||||
|
||||
def Str2Bool(strl: str) -> bool:
|
||||
return strl.lower() == "true"
|
||||
|
||||
|
||||
def GCD(a: int, b: int) -> int:
|
||||
return math.gcd(a, b)
|
||||
|
||||
def LCM(a, b):
|
||||
return int(a * b / GCD(a, b))
|
||||
|
||||
|
||||
def LCM(a: int, b: int) -> int:
|
||||
return (a * b) // GCD(a, b)
|
||||
|
||||
Reference in New Issue
Block a user