Condividi tramite


Guid.NewGuid Metodo

Definizione

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.

Si applica a