UUID生成

データベースやAPI、テスト用の一意なIDをワンクリックで。

形式

ブラウザ内で動作します。入力した内容はどこにも送信されません。

UUIDの生成方法

  1. ランダムなIDならバージョン4を、時系列で並ぶIDならバージョン7を選びます。
  2. 必要な件数と形式を設定します。
  3. 「生成」をクリックし、コピーまたはダウンロードします。

UUIDバージョンの比較

バージョン構成要素時系列順か
v4(このツール)122ビットのランダム値いいえ
v7(このツール)48ビットのタイムスタンプ+ランダム値はい
v1(ここでは非対応)タイムスタンプ+端末のMACアドレスはい。ただしどの端末で作られたか漏れる可能性あり

RFC 9562によるUUIDの構造

部分長さ意味
バージョンニブル16進数1桁3番目のグループにあり、バージョン4なら4、バージョン7なら7
バリアントビット4番目のグループの上位2ビットこのRFCのUUIDバリアントでは10に設定
全体の長さ36文字16進数32桁とハイフン4つ

UUIDを使うコツ

  • データベースがUUID型や16バイトのバイナリ型を用意している場合はそれを使いましょう。36文字のテキストとして保存すると、必要な容量がおよそ2倍になります。
  • バージョン7は先頭のタイムスタンプによって作成時刻順にソートできますが、そのIDを持つ人は誰でもミリ秒単位でおおよその作成時刻が分かってしまいます。
  • 波括弧やハイフンなしの形式は、一部の古いWindows APIやPowerShellスクリプトが期待するGUIDの見た目に合わせたものです。

UUID生成のFAQ

UUID v4とv7の違いは何ですか?

バージョン4は122ビットのランダムな値です。バージョン7はミリ秒単位の48ビットのタイムスタンプで始まり、その後にランダムなビットが続くため、新しいIDは古いIDより後にソートされます。

2つのUUIDが同じになることはありますか?

実際にはほぼありません。10億分の1の確率で1件でも重複が起きるには、バージョン4のUUIDを約103兆個生成する必要があります。

GUIDはUUIDと同じですか?

はい。GUIDはMicrosoftが同じ128ビット形式に付けた呼び名です。「大文字」と「波括弧」にチェックを入れると、Windowsや.NETで使われる{XXXXXXXX-XXXX-...}形式になります。

データベースの主キーにはどちらのバージョンを使うべきですか?

バージョン7です。値が時系列順になるため、新しい行がランダムな位置ではなくインデックスの末尾に追加され、挿入が高速に保たれます。IDから作成時刻が分かってはいけない場合はバージョン4を使ってください。

UUIDをパスワードや秘密のトークンとして使えますか?

ランダムなビット自体はブラウザの暗号論的に安全な生成器から来ていますが、UUIDは識別子として使うためのものです。バージョン7のIDは作成時刻も分かってしまうため、秘密の値にはパスワードジェネレーターを使ってください。

UUIDの長さは?

ハイフン付きなら36文字です。16進数32桁とハイフン4つで、合計128ビットのデータを表します。

暗号論的に安全な乱数源を使っていますか?

はい。どちらのバージョンも、ブラウザの暗号論的に安全な乱数生成器であるcrypto.getRandomValues(バージョン4はcrypto.randomUUID)から作られており、Math.randomは使いません。

関連ツール