Guid.NewGuid Метод

Определение

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

public:
 static Guid NewGuid();
public static Guid NewGuid ();
static member NewGuid : unit -> Guid
Public Shared Function NewGuid () As Guid

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

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

Примеры

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

// 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
open System

// Create and display the value of two GUIDs.
let g = Guid.NewGuid()
printfn $"{g}"
printfn $"{Guid.NewGuid()}"

// This code example produces a result similar to the following:
//     0f8fad5b-d9cb-469f-a165-70867728950e
//     7c9e6679-7425-40de-944b-e07fc1f90ae7
' This code example demonstrates the Guid.NewGuid() method.
Class Sample
    Public Shared Sub Main()
        Dim g As Guid
        ' Create and display the value of two GUIDs.
        g = Guid.NewGuid()
        Console.WriteLine(g)
        Console.WriteLine(Guid.NewGuid())
    End Sub
End Class
'
'This code example produces the following results:
'
'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 классе . Этот класс предоставляет генератор случайных чисел, подходящий для криптографического использования.

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