UUID UUID Generator

Бесплатно · Без регистрации · Без установки

GUID против UUID

Короткий ответ: ни в чём. GUID и UUID — это одно и то же 128-битное значение, байт в байт. «GUID» — название от Microsoft, «UUID» — имя из RFC 9562, которым пользуется весь остальной мир. Различие в традиции записи, а не в сути.

  • Те же 128 бит
  • Два имени — один формат
  • Одно реальное отличие

Генератор GUID

GUID
От 1 до 1000.
Форматирование

Результат 0

    Создаётся локально через Web Crypto API — данные не покидают ваш браузер. Быстро: Ctrl + Enter — Обновлено

    Что такое GUID против UUID

    Всё дело в моменте появления. Когда в начале 1990-х Microsoft добавила глобально уникальные идентификаторы в COM, термин GUID уже использовался внутри компании — и закрепился в OLE, Active Directory, реестре Windows и .NET. А линейка документов RFC описала ту же структуру как UUID. Оба термина описывают 128-битное число, записанное 32 шестнадцатеричными цифрами в группах 8-4-4-4-12. При переводе одного в другое не меняется ни один бит.

    Различается запись. В экосистеме Microsoft GUID обычно пишут заглавными буквами и в фигурных скобках{4C6E0549-82B1-47B0-9479-211A64583258} — потому что именно такую форму выдаёт спецификатор "B" в Guid.ToString() и показывают инструменты SQL Server. Формат RFC — строчные буквы без скобок. Сравнение регистронезависимо, и почти все парсеры принимают оба вида, так что это косметика — но именно из-за неё двое могут смотреть на одно значение и считать, что они разные.

    Единственное место, где различие реально, — порядок сортировки. Тип uniqueidentifier в SQL Server сравнивает последние шесть байтов раньше остальных, поэтому ORDER BY по такому столбцу не даёт ни порядка вставки, ни алфавитного порядка. Это свойство конкретного типа колонки, а не GUID как такового.

    Как использовать

    1. Нужно значение для .NET Guid, колонки SQL Server или интерфейса COM? Сгенерируйте здесь — фигурные скобки и верхний регистр включаются одним флажком.
    2. Сравниваете два идентификатора, которые выглядят по-разному? Уберите скобки и дефисы, приведите к нижнему регистру — если 32 шестнадцатеричные цифры совпали, значения одинаковы.
    3. Храните GUID в SQL Server и сортируете по ним? Не считайте, что порядок что-то значит: добавьте явный столбец создания или используйте значения v7, сгенерированные в приложении.

    Сценарии

    • Разработка на .NET и Windows, где в API стоит Guid, а инструменты показывают скобки.
    • Таблицы SQL Server, где тип называется uniqueidentifier и принимает обе формы написания.
    • Кросс-платформенные API, где значение выходит из мира Microsoft и снова становится UUID.

    Сравнение GUID против UUID с другими форматами

    ВариантКогда использовать
    GUIDНазвание от Microsoft. Обычно {ЗАГЛАВНЫМИ} в скобках.
    UUIDНазвание из RFC 9562. Строчные буквы, дефисы, без скобок.
    ЗначениеОдинаковое. 128 бит, 16 байт, 32 шестнадцатеричные цифры.
    uniqueidentifier в SQL ServerСравнивает последние шесть байтов первыми — это не порядок вставки.
    Разбор строкиРегистронезависимо; обе формы принимаются.

    Примеры кода

    C# / .NET

    // случайный, эквивалент UUID v4
    Guid a = Guid.NewGuid();
    
    // упорядоченный по времени (v7), .NET 9+
    Guid b = Guid.CreateVersion7();
    
    // три распространённые формы строки
    a.ToString("D");   // 4c6e0549-82b1-47b0-9479-211a64583258
    a.ToString("B");   // {4c6e0549-82b1-47b0-9479-211a64583258}
    a.ToString("N");   // 4c6e054982b147b09479211a64583258

    Python

    import uuid
    
    # Это и есть GUID в терминах .NET.
    u = uuid.uuid4()
    print(u)         # 4c6e0549-82b1-47b0-9479-211a64583258
    print(u.hex)     # 4c6e054982b147b09479211a64583258
    print(len(u.bytes))  # 16
    
    # Строка со скобками из .NET разбирается без изменений.
    uuid.UUID('{4C6E0549-82B1-47B0-9479-211A64583258}')

    SQL Server

    -- генерация
    SELECT NEWID();              -- случайный, эквивалент v4
    SELECT NEWSEQUENTIALID();    -- упорядоченный, только как значение по умолчанию
    
    -- и помните: ORDER BY по uniqueidentifier — это не порядок создания

    Частые вопросы

    GUID — это точно то же самое, что UUID?

    Да. Оба термина описывают один и тот же 128-битный идентификатор. GUID из Guid.NewGuid() — это корректный UUID v4, и наоборот. Оба названия живут потому, что Microsoft выпустила свою аббревиатуру раньше, чем распространилась лексика RFC.

    Почему GUID пишут заглавными буквами в скобках?

    Это формат "B" в .NET и то, что показывают инструменты SQL Server. Формат этого не требует: сравнение регистронезависимо, и значение без потерь переживает перевод в строчный вид без скобок.

    GUID менее уникален, чем UUID?

    Нет. Версия и энтропия относятся к формату, а не к названию: у GUID v4 те же 122 случайных бита, что и у UUID v4, и вероятность коллизии та же. Если система выдаёт слабые идентификаторы, проблема в генераторе, а не в названии.