Guid.NewGuid Yöntem

Tanım

Yapının yeni bir örneğini Guid başlatır.

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

Döndürülenler

Yeni bir GUID nesnesi.

Örnekler

Aşağıdaki kod örneği, iki Guid nesnenin değerlerini oluşturur ve görüntüler.

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

Açıklamalar

Bu, yeni Guidbir almak için çağırabileceğiniz kullanışlı static bir yöntemdir. yöntemi , RFC 4122, Sn. 4.4'te açıklandığı gibi Sürüm 4 Evrensel Benzersiz Tanımlayıcısı (UUID) oluşturur. Döndürülen Guid değerin eşit Guid.Emptyolmadığı garanti edilir.

Windows'da bu işlev CoCreateGuid işlevine yapılan çağrıyı sarmalar. Oluşturulan GUID 122 bit güçlü entropi içerir.

.NET 6'dan başlayarak Windows dışı platformlarda bu işlev, 122 bit güçlü entropi oluşturmak için işletim sisteminin şifreleme açısından güvenli sahte rastgele sayı oluşturucuyu (CSPRNG) çağırır. .NET'in önceki sürümlerinde entropi bir CSPRNG tarafından oluşturulacağı garanti edilmiyor.

Uygulamaların şifreleme amacıyla NewGuid yöntemini kullanmaması önerilir. İlk olarak, Sürüm 4 UUID kısmen tahmin edilebilir bir bit deseni olduğundan NewGuid işlevi düzgün bir şifreleme sahte rastgele işlevi (PRF) işlevi göremez. NewGuid'in çıkışı, girişinin uygun bir PRF tarafından oluşturulmasını gerektiren bir şifreleme bileşenine verilirse, şifreleme bileşeni güvenlik özelliklerini koruyamayabilir. İkincisi, NewGuid platformdan bağımsız olarak en fazla 122 bit entropi kullanır. Bazı şifreleme bileşenleri, ilke olarak girişlerinde en düşük entropi düzeyini ayarlar. Bu tür ilkeler genellikle minimum entropi düzeyini 128 bit veya üzeri olarak ayarlar. NewGuid'in çıkışını böyle bir yordama geçirmek, ilkesini ihlal edebilir.

Bir uygulama şifreleme amacıyla rastgele veri gerektiriyorsa, sınıfında statik bir yöntem RandomNumberGenerator kullanmayı göz önünde bulundurun. Bu sınıf, şifreleme kullanımına uygun rastgele bir sayı oluşturucu sağlar.

Şunlara uygulanır