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