gitscope
← marzneshin / v0.2.0 / app/utils/keygen.py
https://dev.kronoz.win/r/marzneshin.git
app/utils/keygen.py · Python
Blame Raw
 1# import hashlib
 2import xxhash
 3import uuid
 4from app.models.proxy import ProxyTypes
 5
 6def gen_uuid(key: str) -> str:
 7    return str(uuid.UUID(bytes=xxhash.xxh128(key.encode()).digest()))
 8
 9def gen_password(key: str) -> str:
10    return xxhash.xxh128(key.encode()).hexdigest()
11
12def generate_settings(key: str, protocol: ProxyTypes) -> dict:
13    if protocol in (ProxyTypes.Trojan, ProxyTypes.Shadowsocks):
14        return ProxyTypes(protocol).settings_model(password=gen_password(key)).dict(no_obj=True)
15    elif protocol in (ProxyTypes.VMess, ProxyTypes.VLESS):
16        return ProxyTypes(protocol).settings_model(id=gen_uuid(key)).dict(no_obj=True)
17