Продолжение работы над Crypto

This commit is contained in:
2026-07-10 16:02:22 +03:00
parent 15cc114656
commit 0370f20efd
2 changed files with 57 additions and 0 deletions

View File

@@ -25,6 +25,9 @@ class Crypto:
DEFAULT_PIN_CODE_ALPHABET = "0123456789"
""" Алфавит PIN-кода по умолчанию """
DEFAULT_SLUG_LENGTH = 8
""" Длина slug по умолчанию """
@classmethod
def gen_token(cls, length: int = DEFAULT_TOKEN_LENGTH) -> str:
"""
@@ -49,3 +52,19 @@ class Crypto:
"""
return "".join(secrets.choice(alphabet) for _ in range(length))
@classmethod
def gen_slug(cls, prefix: str, length: int = DEFAULT_SLUG_LENGTH):
"""
Генерирует случайный slug
:param prefix: Префикс slug
:param length: Длина slug
:return: Сгенерированный slug
"""
l = length - len(prefix)
if l <= 0:
return prefix
return prefix + cls.gen_token(l)