Guid.NewGuid Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie Guid 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ć nowy Guidelement . Metoda tworzy identyfikator uniwersalny (UUID) w wersji 4 zgodnie z opisem w specyfikacji RFC 4122, s. 4.4. Zwrócony Guid element ma gwarancję, że nie jest równy Guid.Empty.
W 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 .NET 6, ta funkcja wywołuje bazowy kryptograficznie bezpieczny pseudolosowy generator liczb systemu operacyjnego (CSPRNG) w celu wygenerowania 122 bitów silnej entropii. W poprzednich wersjach .NET entropii nie ma gwarancji, że zostanie wygenerowana 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 pseudolosowa funkcja (PRF). Jeśli dane wyjściowe newGuid zostaną przekazane składnikowi kryptograficznemu, który wymaga wygenerowania jego danych wejściowych przez właściwą 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 bity 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 128 bitach lub wyższym. Przekazanie danych wyjściowych NewGuid do takiej procedury może naruszać jego politykę.
Jeśli aplikacja wymaga losowych danych do celów kryptograficznych, rozważ użycie metody statycznej w RandomNumberGenerator klasie. Ta klasa zapewnia generator liczb losowych odpowiedni do użycia kryptograficznego.