Guid.NewGuid Método

Definição

Inicializa uma nova instância da estrutura Guid.

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

Retornos

Um novo objeto GUID.

Exemplos

O exemplo de código a seguir cria e exibe os valores de dois Guid objetos.

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

Comentários

Esse é um método conveniente static que você pode chamar para obter um novo Guid. O método cria um UUID (Identificador Universal exclusivo) da versão 4, conforme descrito em RFC 4122, s. 4.4. O retornado Guid tem a garantia de não ser igual Guid.Emptya .

No Windows, essa função encapsula uma chamada para a função CoCreateGuid . O GUID gerado contém 122 bits de entropia forte.

Em plataformas não Windows, começando com o .NET 6, essa função chama o gerador de número pseudo-aleatório (CSPRNG) criptograficamente seguro do sistema operacional para gerar 122 bits de entropia forte. Nas versões anteriores do .NET, não há garantia de que a entropia seja gerada por um CSPRNG.

É recomendável que os aplicativos não usem o método NewGuid para fins criptográficos. Primeiro, como uma UUID versão 4 tem um padrão de bit parcialmente previsível, a função NewGuid não pode servir como uma PRF (função pseudo-aleatória criptográfica) adequada. Se a saída de NewGuid for dada a um componente criptográfico que exige que sua entrada seja gerada por um PRF adequado, o componente criptográfico poderá não ser capaz de manter suas propriedades de segurança. Em segundo lugar, NewGuid utiliza no máximo 122 bits de entropia, independentemente da plataforma. Alguns componentes criptográficos definem um nível mínimo de entropia em suas entradas como uma questão de política. Essas políticas geralmente definem o nível mínimo de entropia em 128 bits ou mais. Passar a saída de NewGuid para essa rotina pode violar sua política.

Se um aplicativo exigir dados aleatórios para fins criptográficos, considere usar um método estático na RandomNumberGenerator classe . Essa classe fornece um gerador de número aleatório adequado para uso criptográfico.

Aplica-se a