本文へ移動
Develop Tools
← 使い方ガイドへ戻る

GUIDを無料で生成する方法|ランダムGUIDをブラウザで作成

テストデータや相関ID用のGUIDが必要なら、Math.random()の自作ではなくWeb Cryptoを使うGeneratorでVersion 4を作成します。

Web CryptoからランダムGUIDを生成しD形式やSQL Server形式へ出力する流れ
Web CryptoからランダムGUIDを生成しD形式やSQL Server形式へ出力する流れ

GUIDをブラウザ内で生成・検証する

ランダムGUIDの生成、N・D・B・P・X形式の変換、Version・Variant・Guid.Empty・バイト順の確認を、入力値を外部送信せず実行できます。

GUIDを生成する

結論:Web CryptoでVersion 4のGUIDを作り、保存先にもUnique制約を置く

現行ツールはcrypto.randomUUID()またはcrypto.getRandomValues()を使ってRFC VariantのVersion 4を生成します。件数と表記を選び、Browser内で結果を作ります。

生成した時点では利用先に予約されていません。数学的な一意性を保証せず、DBやRegistry側でも重複を拒否できる設計にします。

現行GUIDツールが生成するのはv4です。v7が必要なら.NET 9以降のGuid.CreateVersion7()など、利用環境の公式APIを使用します。

生成設定と出力先を確認する

一般的な受け渡しはD形式、ハイフンなしが必要ならN形式、SQL Server投入例が必要ならSQL出力を選びます。

大文字・小文字は値を変えませんが、文字列比較するLegacy Systemでは保存規則をそろえます。

確認項目確認方法判断
乱数源Web CryptoCSPRNG
Version3番目Group先頭4
Variant4番目Group先頭RFC
保存先UNIQUE制約衝突拒否

GUID生成・検証ツールで確認する手順

  1. 生成件数を指定します。
  2. D・N・B・P・Xと英字Caseを選びます。
  3. GUIDを生成してVersion 4と重複0件を確認します。
  4. 用途別形式でコピーまたは保存します。

GUID本体はlocalStorageへ保存されず、画面設定だけが次回へ引き継がれます。

Guid.NewGuid()との対応を理解する

Guid id = Guid.NewGuid();
Console.WriteLine(id.ToString("D"));

Guid.NewGuid()はVersion 4 Guidを作ります。Toolの結果をC#へ渡す場合もGuid.TryParseで入力境界を確認し、文字列のまま主キー比較しないようにします。

DevelopToolsのGUID生成・検証ツールでできること

項目現行ツールの仕様
生成Web Cryptoを使うランダムGUID(UUIDv4)を1~10,000件生成
入力.NETのD・N・B・P・X形式を正規化して検証
確認元の表記、CanonicalなD形式、Version、Variant、Guid.Empty、重複
バイト列RFC順とGuid.ToByteArray()互換順をHex・Base64で表示
出力改行、CSV、JSON、C#、VB.NET、PowerShell、SQL Server向けへ整形
未対応UUIDv7生成、Guid.ParseExactモード、NEWSEQUENTIALID()の再現
データ保持件数・表記・大文字小文字・出力形式だけをlocalStorageへ保存し、GUID本体は保存しない

このツールの検証はSystem.GuidそのものをBrowserで実行するものではありません。代表的なN・D・B・P・X形式を同じ正規形へ変換する補助機能です。最終的な受入可否は、実際に利用する.NET Runtime、API Contract、SQL Server列で確認してください。

入力の前後Whitespaceは除去しますが、D・N・B・P形式の内部Whitespaceは勝手に削除しません。Guid.Emptyは「有効なゼロ値」として表示し、空の入力や形式不正とは分けて扱います。

System.Guidの生成・Parse・書式を分ける

API・型役割失敗時・注意点
Guid.NewGuid()Version 4の新しいGuidを作る一意性をDB制約なしで保証するAPIではない
Guid.CreateVersion7().NET 9以降でRFC 9562のVersion 7を作る現行DevelopToolsでは生成未対応
Guid.Parse()複数の標準書式をGuidへ変換不正入力ではFormatException
Guid.TryParse()例外なしで変換成否を返すfalse時のresultはGuid.Empty
Guid.ParseExact()/TryParseExact()N・D・B・P・Xの指定書式だけを受け付ける外部入力の契約をStrictにしたい場合に使う
Guid.VersionVersion Fieldを読む.NET 9以降。値の用途妥当性までは保証しない

TryParseがfalseのときresultへGuid.Emptyが入ることと、文字列「00000000-0000-0000-0000-000000000000」を正常にParseしたことは同じ結果値でも意味が異なります。必ずBooleanの戻り値も保持します。

SQL Serverで確認するポイント

項目確認内容誤解しやすい点
uniqueidentifier16byteのGUID値を保持するSQL Server型文字列列と同じSort規則ではない
NEWID()uniqueidentifier値をServer側で生成Browser生成値との重複を絶対排除するものではない
NEWSEQUENTIALID()DEFAULT制約で概ね順次的な値を生成Guid.CreateVersion7()と同じ形式・順序ではない
主キーUNIQUE/PRIMARY KEYと衝突時処理を用意GUIDだけで参照整合性や認可は成立しない

SQL Serverのuniqueidentifierに対する比較・並び順は、文字列へ変換した辞書順やRFC byte順と同一ではありません。Index設計やInsert性能は、実データ量、Page Split、Fill Factor、Workloadを計測して決めます。

識別子とSecretを混同しない

  • GUIDは分散環境で識別子を作る手段であり、数学的に衝突しない保証ではない
  • API Key、Password Reset Token、Session Secretには用途専用の十分なEntropyと失効・認可設計を使う
  • URLへGUIDを載せても、Authorizationを省略してよい理由にはならない
  • 本番GUIDをIssueやChatへ貼る前に、それが顧客・注文・内部Resourceへ結び付く情報か確認する

GUIDv4は推測困難性を持ち得ますが、SecretとしてのLifecycle、Rotation、Scope、Auditを提供しません。Resource IDを知っている利用者にも毎回認可を適用します。

ブラウザ内処理と共有時の注意

  • 現行ツールはGUID生成・検証でfetch、XMLHttpRequest、sendBeaconを使用しない
  • GUID本体・検証入力・バイト列をServerやAnalyticsへ送信しない
  • コピー後はOSやBrowserのClipboard履歴へ残る可能性がある
  • 生成結果は利用先へ登録されるまで予約済みではないため、DB側のUnique制約を残す
  • 公開資料には本番値ではなく用途が明確なDummy GUIDを使う

Browser内処理はUploadを避けますが、悪意あるExtension、端末上のMalware、画面共有、Clipboard監視から値を守る保証ではありません。信頼できる端末とProfileで扱います。

一次資料で仕様とRuntimeを確認する

Guid.CreateVersion7とGuid.Versionは.NET 9以降のAPIです。Framework・Runtime・TargetFrameworkで利用可否が変わるため、記事のSampleを貼る前にProjectのTargetとMicrosoft LearnのApplies toを確認します。UUID bit layoutはRFC 9562、SQL Server固有動作はMicrosoft Learnを優先します。

具体例:SQL Server投入用GUIDを50件作る

D形式、50件、SQL Server INSERT出力を選びます。

target_tableとguid_valueをTest用のTable・Column名へ置き換え、Transaction内で試します。

  1. 50件を指定
  2. D形式を選択
  3. SQL INSERTを選択
  4. 重複確認
  5. Test環境で実行

SQL文字列を本番へ直接貼らず、Schema・権限・Transactionを確認します。

よくある質問

GUIDは世界で絶対に重複しませんか?
いいえ。適切な生成方式で衝突確率を非常に小さくする識別子です。保存先にもUNIQUE制約と衝突時の再試行を用意してください。
Guid.TryParseがtrueなら業務上も正しい値ですか?
文字列をGuidへ変換できることだけを示します。期待Version、Guid.Emptyの許否、DB上の存在、認可は別に検証します。
入力したGUIDはServerへ送信されますか?
現行のGUID生成・検証ツールはBrowser内で処理し、GUID本体や検証結果をServer・外部APIへ送信しません。