Spaces:
Running
Running
File size: 1,198 Bytes
f02b1de 7bf2558 f02b1de 73c012d 7bf2558 8f6657f f02b1de 3a32016 f02b1de 7bf2558 f02b1de c81ebe1 f02b1de 7814f6f f02b1de |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import time
import random
import hashlib
from .. import helpers
def signatureGen(request):
endtime = round(time.time())+3600
uK = helpers.getFromRequest(request, "key")
if uK == None: return {"status": "error", "details": {"error_code": -1, "error_details": "No key to generate signature"}}
userKey = hashlib.md5(uK.encode()).hexdigest()
text = f"--START SIGNATURE-- {userKey}{endtime} --END SIGNATURE--"
salt = hashlib.md5("funapi-salt".encode()).hexdigest()[0:16]
creatorKey = hashlib.md5(f"HOST-IP:{request.remote_addr};USERKEY={userKey};DATE={time.strftime('%Y-%m-%d')};".encode()).hexdigest()
key = hashlib.blake2b(text.encode(), key=userKey.encode(), salt=salt.encode()).hexdigest().upper()
config = helpers.configFile()
db = helpers.EazySQLite3(config['signatures-db'])
query = db.query(f"INSERT INTO `table` (`key`, `endtime`, `creatorKey`) VALUES (\"{key}\", \"{endtime}\", \"{creatorKey}\")")
if query['status']:
return {"status": "ok", "result": key, "endtime": endtime}
else:
return {"status": "error", "details": {"error_code": -1, "error_details": "This key already got signature"}}
|