GUID ジェネレーター
Microsoft の GUID を .NET 形式で生成:{B} 波かっこ、D、N、P、X の 16 進構造、Windows レジストリ、C# の new Guid("…")、Base64 のバイト順。一括生成と大文字にも対応。
最大 1000
GUID は Microsoft における UUID の呼び名です。crypto.getRandomValues で生成したランダムなバージョン 4 の値です。
GUID ジェネレーターとは?
GUID は UUID の Microsoft での呼び名で、Windows、.NET、COM、SQL Server、Visual Studio のプロジェクトで使われる 128 ビットの識別子です。このツールは、ランダムなバージョン 4 の GUID を生成し、.NET の Guid.ToString() の書式指定子や Windows レジストリ形式など、Microsoft のツールが想定する形式で出力します。
GUID ジェネレーターの使い方
- 形式 を選びます。たとえば Visual Studio には 波かっこ {…}(B)、
.regファイルには Windows レジストリ形式(大文字・波かっこ付き) です。 - 必要な GUID の 個数 を設定し、大文字 を切り替えます。
- 再生成 をクリックして新しいバッチを作り、リストをコピーまたはダウンロードします。
例
Format Braces {…} (B), Uppercase, How many 1 {E17C75C3-AEFF-475C-B725-FA19A83F612B} 同じ GUID を X 形式にすると {0xE17C75C3,0xAEFF,0x475C,{0xB7,0x25,0xFA,0x19,0xA8,0x3F,0x61,0x2B}}、.NET の Base64 では w3V84f+uXEe3JfoZqD9hKw== になります。実際の値は異なります。
GUID ジェネレーターを使うべき場面
Visual Studio のプロジェクト、COM クラス、WiX インストーラー、レジストリキー、SQL Server の uniqueidentifier、C# コード用に新しい GUID が必要なときに使ってください。Microsoft 以外のシステムや時刻順のキー(v7)には、UUID ジェネレーターを使います。
GUID ジェネレーターの仕組み
各 GUID は、RFC 9562 のランダムなバージョン 4 の UUID(crypto.getRandomValues による 122 ビットの乱数)です。形式は .NET の Guid.ToString(format) に従います。D は xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx、N は 32 桁、B は波かっこ付き、P は丸かっこ付き、X は {0x…,0x…,0x…,{0x..,…}} です。レジストリ形式は、大文字で波かっこ付きです。Base64(.NET ToByteArray) は、Microsoft 独自のミックスエンディアンの順序でバイトをエンコードします。最初の 3 つのグループ(Data1、Data2、Data3)がリトルエンディアンで、最後の 8 バイトはそのままです。これは SQL Server が uniqueidentifier に保存するのと同じバイト列です。
一般的な使用例
- ProjectGuid や COM の CLSID を作成する
- 新しいキーを含む Windows レジストリの .reg ファイルを書く
- SQL Server のテストデータの uniqueidentifier 列に値を入れる
- できあがった new Guid("…") を C# コードに貼り付ける
よくある質問
GUID と UUID の違いは何ですか?
構造に違いはなく、どちらも 128 ビットの識別子です。GUID は Microsoft の用語で、バイト順が異なるのは、値が生のバイト列として保存される場合(Guid.ToByteArray)だけです。
Base64 の出力が 16 進の桁と一致しないのはなぜですか?
.NET は最初の 3 つのグループをリトルエンディアンで保存するため、Base64 にエンコードする前にバイトが並べ替えられます。これは Convert.ToBase64String(guid.ToByteArray()) が返す結果と一致します。
GUID は大文字と小文字を区別しますか?
いいえ。Windows と .NET は、大文字と小文字の 16 進数を同じ GUID として扱います。レジストリでは慣例的に大文字が使われます。