uuid — Универсальные уникальные идентификаторы
Модуль uuid предоставляет все необходимое для генерации безопасных и уникальных ID (идентификаторов). Эти идентификаторы полезны для назначения ключей в базах данных, названия файлов на сервере или создания сессий.
Самый популярный тип — UUIDv4 (он полностью случайный).
import uuid
Случайная генерация (UUID 4)
Версия 4 гарантирует практически нулевой шанс случайной коллизии (совпадения двух ID).
import uuid
# Генерация UUIDv4
user_id = uuid.uuid4()
print(user_id)
# Выведет: df593d67-4ad3-468b-ac21-6ac38ab4cdb4
# Удобные конвертации
print(user_id.hex) # Без дефисов: df593d674ad3468bac216ac38ab4cdb4
print(type(user_id))# <class 'uuid.UUID'> - это объект, не строка!
print(str(user_id)) # Превратить в обычную строку
Генерация по данным (UUID 5 и 3)
Эти версии генерируют всегда один и тот же UUID для одних и тех же входящих данных, скрещивая ваше секретное пространство имен и строку. (Версия 5 использует более безопасный SHA-1, в отличие от устаревшего MD5 в версии 3).
import uuid
namespace = uuid.NAMESPACE_URL
name = 'https://python.org'
# При каждом запуске скрипта этот ID будет одинаковым
static_id = uuid.uuid5(namespace, name)
print(static_id)
Полный справочник API (API Reference)
Основные генераторы
| Функция | Описание |
|---|---|
uuid.uuid1() |
Генерирует UUID на основе MAC-адреса компьютера и текущего времени часов. (Считается угрозой приватности, так как раскрывает MAC). |
uuid.uuid3(ns, name) |
Генерирует статический ID по MD5 хешу имени. (Устарел). |
uuid.uuid4() |
Абсолютно случайный, мощный 128-битный UUID. Главная функция. |
uuid.uuid5(ns, name) |
Генерирует статический ID на основе современного SHA-1. |
Объект UUID
Ниже представлены атрибуты сгенерированного объекта (например: obj = uuid.uuid4()).
| Атрибут/Метод | Описание |
|---|---|
UUID(hex='...') |
Конструктор. Позволяет взять готовую строку с хешем и превратить её в Python UUID-объект. |
UUID.bytes |
Возвращает сырую строку длиной в 16 байт. |
UUID.hex |
Классический хеш: 32 шестнадцатеричных символа (без дефисов). |
UUID.int |
Целое математическое число длиной в 128 бит. |
UUID.version |
Возвращает цифру, показывающую версию (например, 4). |