本文へスキップ
ToolDesk

UUID生成

UUID v4 を暗号学的乱数でまとめて生成。大文字・ハイフン除去にも対応。

開発

このツールについて

UUID は、世界中のどこで作っても他とかぶりにくいように設計された 128 ビットの識別子です。このツールは暗号学的に安全な乱数を使って UUID version 4 をブラウザ内で生成し、値を外部へ送信しません。必要な個数を指定すれば、テストデータや ID をまとめて用意できます。

UUID の形と中身

UUID は 550e8400-e29b-41d4-a716-446655440000 のように、16 進数を 8-4-4-4-12 の 5 グループに区切って表します。合計 32 桁の 16 進数=128 ビットで、そのうち数ビットは「バージョン」と「バリアント」を示す固定領域です。v4 の場合、この固定ビットを除いた 122 ビットが乱数になります。

v4(乱数)と v7(時刻順)の違い

2024 年に公開された RFC 9562 で、UUID は v7 まで定義されました。v4 は値の大半が乱数で、生成順とは無関係に散らばります。一方 v7 は先頭にミリ秒単位のタイムスタンプを持ち、生成した順に値が増えていくのが特徴です。このツールが出力するのは v4 ですが、「生成時刻順に並んでほしい」用途では v7 を検討する価値があります。

データベースの主キーに使うときの注意

v4 はランダムなので、主キーに使うと挿入位置がインデックス上で毎回ばらばらになり、行数が増えたときに書き込み性能が落ちることがあります(インデックスの断片化)。時系列で挿入が続くテーブルでは、時刻順に増える v7 や ULID の方がインデックスに優しい場合があります。性能が問題にならない規模なら v4 のままで十分です。

「重複しない」の実際

v4 の乱数部分は 122 ビットあり、取りうる値は約 5.3×10^36 通りです。誕生日の計算でも、衝突が現実的な確率になるには天文学的な個数の生成が必要で、通常の用途では重複を心配する必要はありません。それでも絶対の一意性が要件なら、データベース側の一意制約と併用すると安心です。

UUID は「秘密の値」ではない

v4 は推測されにくい乱数ですが、UUID はあくまで識別子です。URL やログに現れることも多いため、「UUID を知っている=アクセス権がある」という設計(推測不能な URL だけで保護する方式)に頼りきるのは避け、本来の認証・認可と併用してください。

使い方

  1. 個数を指定し、必要なら大文字・ハイフンなしを選びます。
  2. 「再生成」で新しい UUID を生成し、個別またはまとめてコピーできます。

よくある質問

UUID v4 とは何ですか?

値の大部分を乱数から作る形式の UUID です。ランダム性が高いため事実上重複しにくく、データベースの主キーやリクエスト ID など、一意な識別子が必要な場面で広く使われています。

生成される値はどれくらい安全ですか?

暗号学的に安全な乱数(ブラウザの crypto 機能)を用いて生成しています。単純な擬似乱数より予測されにくいため、ID としての信頼性が高くなります。

一度に複数生成できますか?

はい。必要な個数を指定して、一度にまとめて生成できます。大量のテストデータ用 ID を用意したいときにも便利です。

大文字やハイフンなしの形式にできますか?

はい。英字を大文字にする、ハイフンを除去する、といった出力オプションに対応しています。区切り文字を入れたくないファイル名やトークン用途にも使えます。

生成した UUID はサーバーに送られますか?

いいえ。生成も乱数の取得もすべてブラウザ内(端末内)で完結し、値が外部に送信されることはありません。

本当に重複しないのですか?

理論上は重複の可能性がゼロではありませんが、乱数の空間が非常に広いため、現実的には衝突を心配せずに使えます。厳密な一意性が絶対条件のシステムでは、データベース側の一意制約と併用すると安心です。

このツールをサイトに埋め込む

下のコードをコピーして貼り付けると、あなたのサイトやブログにこのツールを埋め込めます。

<iframe src="https://tooldesk.dev/embed/ja/tools/uuid-generate" width="100%" height="600" style="border:1px solid #e5e7eb;border-radius:12px;max-width:640px" loading="lazy" title="UUID生成 — ToolDesk" allow="clipboard-write"></iframe>
<p style="font-size:12px"><a href="https://tooldesk.dev/tools/uuid-generate" target="_blank" rel="noopener">UUID生成</a> by <a href="https://tooldesk.dev" target="_blank" rel="noopener">ToolDesk</a></p>