Прочитать на английском

Поделиться через


Guid.NewGuid Метод

Определение

Инициализирует новый экземпляр структуры Guid.

C#
public static Guid NewGuid();

Возвращаемое значение

Новый объект GUID.

Примеры

В следующем примере кода создаются и отображаются значения двух Guid объектов .

C#
// Create and display the value of two GUIDs.
Guid g = Guid.NewGuid();
Console.WriteLine(g);
Console.WriteLine(Guid.NewGuid());

// This code example produces a result similar to the following:

// 0f8fad5b-d9cb-469f-a165-70867728950e
// 7c9e6679-7425-40de-944b-e07fc1f90ae7

Комментарии

Это удобный static метод, который можно вызвать для получения нового Guid. Метод создает универсальный уникальный идентификатор версии 4 (UUID), как описано в rfc 4122, sec. 4.4. Возвращаемое Guid значение гарантированно не равно Guid.Empty.

В Windows эта функция служит оболочкой для вызова функции CoCreateGuid . Созданный GUID содержит 122 бита сильной энтропии.

На платформах, отличных от Windows, начиная с .NET 6, эта функция вызывает базовый криптографически защищенный генератор псевдослучайных чисел (CSPRNG) ОС для создания 122 бит сильной энтропии. В предыдущих версиях .NET энтропия не гарантируется формированием CSPRNG.

Рекомендуется, чтобы приложения не использовали метод NewGuid в криптографических целях. Во-первых, так как UUID версии 4 имеет частично предсказуемую битовую схему, функция NewGuid не может служить надлежащей криптографической псевдослучайной функцией (PRF). Если выходные данные NewGuid предоставляются криптографическим компоненту, который требует, чтобы его входные данные были созданы соответствующим PRF, криптографический компонент может не поддерживать свои свойства безопасности. Во-вторых, NewGuid использует не более 122 бит энтропии, независимо от платформы. Некоторые криптографические компоненты устанавливают минимальный уровень энтропии для своих входных данных в рамках политики. Такие политики часто устанавливают минимальный уровень энтропии на уровне 128 бит или выше. Передача выходных данных NewGuid в такую процедуру может нарушить ее политику.

Если приложению требуются случайные данные для криптографических целей, рассмотрите возможность использования статического метода в RandomNumberGenerator классе . Этот класс предоставляет генератор случайных чисел, подходящий для криптографического использования.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0