Создаём мини-UUID генератор: короткие уникальные ID для ссылок, токенов и тестовых данных!



Иногда вместо длинного UUID вроде 550e8400-e29b-41d4-a716-446655440000 нужен компактный, но всё ещё достаточно уникальный идентификатор — для коротких ссылок, временных токенов, тестовых данных, имён файлов и т.п.

Импортируем модули:
import uuid
import secrets
import string


Классический UUID v4:
def generate_uuid():
return str(uuid.uuid4())


Обрезанный UUID на основе hex (берём первые N символов).
UUID v4 содержит 32 hex-символа. Можно использовать префикс, если уровень уникальности устраивает.
def generate_short_uuid(length=8):
return uuid.uuid4().hex[:length]


Генерация «человеческого» короткого ID из букв/цифр. Удобно для URL, CLI и тестовых данных. Используем secrets для криптографически стойкой случайности.
ALPHABET = string.ascii_lowercase + string.digits

def generate_human_id(length=8):
return "".join(secrets.choice(ALPHABET) for _ in range(length))


Пример использования:
print("UUID v4: ", generate_uuid())
print("short UUID: ", generate_short_uuid())
print("human ID: ", generate_human_id())


Пример вывода:
UUID v4: 3f2a2e46-ff0b-4d56-9b65-b793f9e3b8c1
short UUID: a9c1f2d3
human ID: k4x9b1qz


Создание короткой ссылки:
def make_short_link(base_url="https://my.app/"):
# В реальной системе потребуется хранить соответствие short - original
return base_url + generate_human_id(7)

print(make_short_link())


Удобно для генерации коротких токенов, временных ссылок, идентификаторов сущностей, тестовых данных или имён файлов.
Для критичных security-задач увеличивайте длину или используйте secrets.token_urlsafe.

Python Ready | #практика
Просмотры: 191
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти