gitscope
← marzneshin / v0.3.0-alpha6 / 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
 6
 7def gen_uuid(key: str) -> str:
 8    return str(uuid.UUID(bytes=xxhash.xxh128(key.encode()).digest()))
 9
10
11def gen_password(key: str) -> str:
12    return xxhash.xxh128(key.encode()).hexdigest()
13
14
15def generate_settings(key: str, protocol: ProxyTypes) -> dict:
16    if protocol in (ProxyTypes.Trojan, ProxyTypes.Shadowsocks):
17        return (
18            ProxyTypes(protocol)
19            .settings_model(password=gen_password(key))
20            .dict(no_obj=True)
21        )
22    elif protocol in (ProxyTypes.VMess, ProxyTypes.VLESS):
23        return ProxyTypes(protocol).settings_model(id=gen_uuid(key)).dict(no_obj=True)