Guid.NewGuid メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Guid 構造体の新しいインスタンスを初期化します。
public:
static Guid NewGuid();
public static Guid NewGuid ();
static member NewGuid : unit -> Guid
Public Shared Function NewGuid () As Guid
戻り値
新しい GUID オブジェクト。
例
次のコード例では、2 つの Guid オブジェクトの値を作成して表示します。
// 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
'
注釈
これは、 を呼び出して新しい Guidを取得できる便利なメソッドですstatic
。 メソッドは、 RFC 4122、Sec. 4.4 で説明されているように、バージョン 4 ユニバーサル一意識別子 (UUID) を作成します。 返される は、 と等Guid.Emptyしくないことが保証されますGuid。
Windows では、この関数は CoCreateGuid 関数の呼び出しをラップします。 生成された GUID には、122 ビットの強力なエントロピが含まれています。
Windows 以外のプラットフォームでは、.NET 6 以降、この関数は OS の基になる暗号で保護された擬似乱数ジェネレーター (CSPRNG) を呼び出して、122 ビットの強力なエントロピを生成します。 以前のバージョンの .NET では、エントロピが CSPRNG によって生成されるとは限りません。
アプリケーションでは、暗号化の目的で NewGuid メソッドを使用しないことをお勧めします。 まず、バージョン 4 UUID には部分的に予測可能なビット パターンがあるため、 NewGuid 関数は適切な暗号化擬似ランダム関数 (PRF) として機能できません。 NewGuid の出力が、適切な PRF によって入力を生成する必要がある暗号化コンポーネントに渡された場合、暗号化コンポーネントはセキュリティ プロパティを維持できない可能性があります。 次 に、NewGuid は、プラットフォームに関係なく、最大 122 ビットのエントロピを利用します。 一部の暗号化コンポーネントでは、ポリシーの問題として、入力に最小エントロピ レベルが設定されます。 このようなポリシーは、多くの場合、最小エントロピ レベルを 128 ビット以上に設定します。 このようなルーチンに NewGuid の出力を渡すと、そのポリシーに違反する可能性があります。
暗号化のためにアプリケーションでランダム なデータが必要な場合は、 クラスで RandomNumberGenerator 静的メソッドを使用することを検討してください。 このクラスは、暗号化の使用に適した乱数ジェネレーターを提供します。
適用対象
.NET