Guid.NewGuid Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizializza una nuova istanza della struttura Guid.
public:
static Guid NewGuid();
public static Guid NewGuid ();
static member NewGuid : unit -> Guid
Public Shared Function NewGuid () As Guid
Restituisce
Nuovo oggetto GUID.
Esempio
Nell'esempio di codice seguente vengono creati e visualizzati i valori di due Guid oggetti .
// 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
'
Commenti
Si tratta di un metodo pratico static
che è possibile chiamare per ottenere un nuovo Guid. Il metodo crea un identificatore univoco universale 4 (UUID) come descritto in RFC 4122, sec. 4.4. L'oggetto restituito Guid è garantito che non sia uguale Guid.Emptya .
In Windows questa funzione esegue il wrapping di una chiamata alla funzione CoCreateGuid . Il GUID generato contiene 122 bit di entropia avanzata.
Nelle piattaforme non Windows, a partire da .NET 6, questa funzione chiama il generatore di numeri pseudo-casuali sottostanti del sistema operativo sottostante per generare 122 bit di entropia avanzata. Nelle versioni precedenti di .NET, l'entropia non è garantito che venga generata da un CSPRNG.
È consigliabile che le applicazioni non usino il metodo NewGuid a scopo di crittografia. In primo luogo, poiché un UUID versione 4 ha un modello di bit parzialmente prevedibile, la funzione NewGuid non può fungere da funzione pseudo-casuale crittografica appropriata. Se l'output di NewGuid viene assegnato a un componente crittografico che richiede che l'input venga generato da un prf appropriato, il componente crittografico potrebbe non essere in grado di gestire le relative proprietà di sicurezza. In secondo luogo , NewGuid usa al massimo 122 bit di entropia, indipendentemente dalla piattaforma. Alcuni componenti crittografici impostano un livello di entropia minimo per i relativi input in materia di criteri. Tali criteri spesso impostano il livello di entropia minimo a 128 bit o superiore. Il passaggio dell'output di NewGuid a una routine di questo tipo può violare i criteri.
Se un'applicazione richiede dati casuali a scopo di crittografia, è consigliabile usare un metodo statico nella RandomNumberGenerator classe . Tale classe fornisce un generatore di numeri casuali adatto per l'uso crittografico.