34 lines
824 B
Python
34 lines
824 B
Python
from argon2 import PasswordHasher
|
|
|
|
def is_valid_platform(platform):
|
|
if platform not in ["ios","android","web"]:
|
|
return False
|
|
return True
|
|
|
|
def is_valid_token(token): #Later check for specific Firebase tokens
|
|
"""
|
|
Correct length
|
|
No malicious characters
|
|
Freshness?
|
|
"""
|
|
return True
|
|
|
|
ph = PasswordHasher()
|
|
|
|
def hash_api_key(api_key: str) -> str:
|
|
return ph.hash(api_key)
|
|
|
|
def verify_api_key(api_key: str, hashed: str) -> bool:
|
|
try:
|
|
return ph.verify(hashed, api_key)
|
|
except Exception:
|
|
return False
|
|
|
|
if __name__=="__main__":
|
|
plain_key = "super-secret-api-key"
|
|
#hashed_key = hash_api_key(plain_key)
|
|
hashed_key = '$argon2id$v=19$m=65536,t=3,p=4$vqU+MRafVW1b8AtF+zHb0w$p1J4Gyb0jhlVtKgYyjTITxfU97YaayeS3s3qFFP5sVM'
|
|
|
|
print("Hashed API Key:", hashed_key)
|
|
print("Verification:", verify_api_key(plain_key, hashed_key))
|