import json,base64,hashlib,sys,subprocess
from cryptography.hazmat.primitives.ciphers import Cipher,algorithms,modes
IV=b'5421698523412578'
def md5(s): return hashlib.md5(s.encode()).hexdigest()
def k1(tok): return md5(tok+md5(tok))[2:18]
def k2(tok,user=''): return md5(tok+user)[0:16]
def enc(obj,key):
    raw = obj if isinstance(obj,str) else json.dumps(obj,separators=(',',':'),ensure_ascii=False)
    b=raw.encode()
    if len(b)%16: b+=b'\x00'*(16-len(b)%16)
    c=Cipher(algorithms.AES(key.encode()),modes.CBC(IV)).encryptor()
    return base64.b64encode(c.update(b)+c.finalize()).decode()
def dec(b64,key):
    raw=base64.b64decode(b64)
    d=Cipher(algorithms.AES(key.encode()),modes.CBC(IV)).decryptor()
    out=d.update(raw)+d.finalize()
    return out.rstrip(b'\x00')
if __name__=='__main__':
    for tok in ['', 'undefined','null']:
        print(repr(tok),'k1=',k1(tok),'k2=',k2(tok))
    print('Bl thanks,pig4cloud')
