UUID とは
UUID(universally unique identifier、汎用一意識別子)は128ビットの識別子で、705e41a3-d432-4aa9-9ea4-4693bf481eaa のように32桁の16進数を5つのグループに分けて書きます。形式は RFC 9562 で定められています。UUID は、データベースの行、ファイル、API リクエスト、メッセージなどの ID として使われます。中央のサーバーに問い合わせなくても誰でも作成でき、2つが同じになる確率は無視できるほど小さいからです。
どの UUID にも、意味を持つ桁が2つあります。3つ目のグループの最初の桁はバージョンを表し、バージョン4の UUID なら必ず 4、バージョン7なら 7 になります。4つ目のグループの最初の桁はバリアントを表し、標準的な UUID では必ず 8、9、a、b のどれかです。
UUID 生成ツールの使い方
- 「バージョン」で「バージョン4(ランダム)」か「バージョン7(時系列順)」を選びます。
- 「個数」を設定します。一度に最大1,000件まで作成できます。初期値は5件です。
- 「オプション」で形式を選びます。
- 大文字:A から F を大文字にします。
- ハイフン:初期設定でオンです。オフにすると32文字の文字列になります。
- 波かっこ:各 UUID を波かっこで囲みます。Windows やレジストリで使われる形式です。
- 「結果の区切り」を選びます。初期設定は改行です。
- 「UUID を生成」を押し、「コピー」を押します。
直近10回分の結果は、ページを離れるまで「最近の結果」に残ります。それより前に消したい場合は「クリア」を押してください。
生成例
以下はすべて、このページの裏で動いているコードで作成したものです。
| 種類 | 出力 |
|---|---|
| バージョン4 | e38501ee-d339-416b-844d-8f8097d4e108 |
| バージョン4 | 6da6c7c6-45bd-4fbe-9157-75b93f5d4eca |
| バージョン4、大文字 | 21EDC604-4719-4C22-8C19-4D38BE092E26 |
| 同じ UUID、ハイフンなし | 21edc60447194c228c194d38be092e26 |
| 同じ UUID、大文字と波かっこ | {21EDC604-4719-4C22-8C19-4D38BE092E26} |
| バージョン7、2026年10月4日 09:30:00 UTC に作成 | 01a1063f-b1c0-70fc-824b-fa11b7884e75 |
| バージョン7、同じミリ秒 | 01a1063f-b1c0-70fd-bed4-76f914df62b9 |
| バージョン7、1ミリ秒後 | 01a1063f-b1c1-70e3-a5b6-6a2269239f64 |
バージョン7の ID は、最初の12桁が共通していることに注目してください。この桁はタイムスタンプで、16進数の 01a1063fb1c0 は、1970年1月1日からの 1791106200000 ミリ秒を表します。これはちょうど2026年10月4日 09:30 UTC(日本時間 18:30)です。
仕組み
バージョン4。 ツールは、ブラウザに組み込まれた UUID 関数 crypto.randomUUID() を呼び出します。暗号論的に安全な乱数源から122ビットを埋め、バージョンとバリアントのビットを設定します。
バージョン7。 最初の48ビットは、現在の Unix 時刻(ミリ秒)です。次にバージョンの桁と12ビット、その後にバリアントと62ビットのランダムな値が続きます。同じミリ秒の中で多数の ID を作る場合、バージョンの後の12ビットがカウンターとして働き、1件ごとに1ずつ増えます。これにより、一度に作った ID が厳密な順番に保たれます。一覧をテキストとして並べ替えると、作成した順番になります。ランダムなビットは crypto.getRandomValues から取得します。
どちらのバージョンを使うべきか
- バージョン4は、一意の ID が必要なだけなら安心して使える標準的な選択です。いつ、どこで作られたかについて何も明かしません。
- バージョン7は、データベースの主キーに向いています。新しい行がインデックスのランダムな位置ではなく末尾に追加されるので、インデックスがコンパクトに保たれ、挿入も速くなる傾向があります。その代わり、ID を見た人は誰でも作成時刻を読み取れます。
ヒントと制限
- UUID は専用の型の列に保存しましょう。 PostgreSQL の
uuidのように、データベースに専用の型がある場合はそれを使います。36文字のテキストではなく16バイトで保存できます。 - 小文字が標準の形式です。 UUID は大文字と小文字を区別しませんが、RFC 9562 では小文字で出力するよう定めています。大文字は、システムが求める場合にだけ使ってください。
- 秘密の値ではありません。 UUID をパスワードやパスワード再設定用のリンクに使わないでください。推測されにくい必要があるものには、強力なパスワード生成ツールを使ってください。
- ID ではなく指紋が必要ですか? 内容を識別するには、MD5 や SHA-256 などのハッシュを使います。MD5 ハッシュ生成ツールを試してください。
- テストデータ。 ID と組み合わせる架空のネットワークアドレスが必要なら、ランダム IP アドレス生成ツールを使ってください。
そのほかの UUID の作り方
コマンドライン。 macOS とほとんどの Linux では、uuidgen で新しい UUID が表示されます。PowerShell では New-Guid または [guid]::NewGuid() を使います。
JavaScript。 crypto.randomUUID() は、最近のブラウザと Node.js で使えます。
Python。 import uuid の後に uuid.uuid4() を使います。Python 3.14 では uuid.uuid7() も追加されています。
データベース。 PostgreSQL ではバージョン4用に gen_random_uuid() があり、バージョン18で uuidv7() が追加されています。SQL Server には NEWID() があります。
Excel。 UUID を作る組み込み関数はありません。ここで一覧を作成し、コピーして列に貼り付けてください。