Guid.NewGuid Metoda

Definicja

Inicjuje Guid nowe wystąpienie struktury.

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

Zwraca

Nowy obiekt GUID.

Przykłady

Poniższy przykład kodu tworzy i wyświetla wartości dwóch Guid obiektów.

// 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
'

Uwagi

Jest to wygodna static metoda, którą można wywołać, aby uzyskać nową Guidmetodę . Metoda tworzy unikatowy identyfikator w wersji 4 (UUID) zgodnie z opisem w artykule RFC 4122, Sec. 4.4. Zwracana Guid wartość jest gwarantowana, aby nie równała Guid.Emptysię .

W systemie Windows ta funkcja opakowuje wywołanie funkcji CoCreateGuid . Wygenerowany identyfikator GUID zawiera 122 bitów silnej entropii.

Na platformach innych niż Windows, począwszy od platformy .NET 6, ta funkcja wywołuje podstawowy kryptograficznie bezpieczny pseudo-losowy generator liczb systemu operacyjnego (CSPRNG), aby wygenerować 122 bitów silnej entropii. W poprzednich wersjach platformy .NET entropia nie ma gwarancji wygenerowania przez CSPRNG.

Zaleca się, aby aplikacje nie używały metody NewGuid do celów kryptograficznych. Po pierwsze, ponieważ identyfikator UUID w wersji 4 ma częściowo przewidywalny wzorzec bitowy, funkcja NewGuid nie może służyć jako właściwa kryptograficzna pseudo-losowa funkcja (PRF). Jeśli dane wyjściowe newGuid zostaną przekazane składnikowi kryptograficznemu, który wymaga wygenerowania danych wejściowych przez odpowiednią metodę PRF, składnik kryptograficzny może nie być w stanie zachować jego właściwości zabezpieczeń. Po drugie , NewGuid wykorzystuje co najwyżej 122 bitów entropii, niezależnie od platformy. Niektóre składniki kryptograficzne ustawiają minimalny poziom entropii na danych wejściowych w ramach zasad. Takie zasady często ustawiają minimalny poziom entropii na poziomie 128 bitów lub wyższym. Przekazanie danych wyjściowych NewGuid do takiej procedury może naruszać jego zasady.

Jeśli aplikacja wymaga danych losowych do celów kryptograficznych, rozważ użycie metody statycznej w RandomNumberGenerator klasie. Ta klasa zapewnia generator liczb losowych odpowiedni do użycia kryptograficznego.

Dotyczy