Guid.NewGuid Метод

Определение

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

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

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

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
' 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 . Метод создает универсальный уникальный идентификатор (UUID) версии 4, как описано в RFC 4122, sec. 4,4. Возвращаемое значение Guid гарантированно не равно Guid.Empty .

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

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

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

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

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