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 классе. Этот класс предоставляет генератор случайных чисел, подходящий для криптографического использования.

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