UUIDの生成・デコード・検証ツール
バージョン:
生成数:
v4: 完全ランダム。衝突確率は極めて低い
v7: タイムスタンプ(ミリ秒精度)を含む。ソート可能でデータベースのインデックスに適する
UUID生成ツールでできること
UUID v4(ランダム)・v7(タイムスタンプ付き)の生成、v5(名前ベース・SHA-1)の生成、既存UUIDのデコード、複数UUIDの一括バリデーションが行えます。開発・テスト作業で必要なUUIDをブラウザ上で即座に取得できます。
使い方
- UUID 生成タブ
- バージョン(v4 / v7)と生成数(1 / 5 / 10)を選択して「生成」ボタンを押すとUUIDが生成されます。個別コピー・すべてコピー・クリア機能付きです。
- デコードタブ
- UUIDを入力して「デコード」ボタンを押すと、バージョン・バリアント・タイムスタンプ(v1/v6/v7の場合)を解析して表示します。
- v5 生成タブ
- ネームスペース(DNS / URL / OID / X500 / カスタム)と名前を指定して、名前ベースのUUID v5を生成します。同じ入力からは常に同じUUIDが得られます。
- バリデーションタブ
- 複数のUUIDを改行区切りで貼り付けて「検証」を押すと、各UUIDの形式チェック・バージョン・バリアント・重複の有無を一覧表示します。
活用シーン
- データベースの主キー生成 — RDBMSやNoSQLデータベースのレコードに一意なIDを付与する用途で広く使われています。MySQLやPostgreSQLのUUID型カラム、MongoDBの_idフィールドなど、フレームワーク問わず利用できます。自動採番(AUTO_INCREMENT)と異なり、分散システムや複数DBのマイグレーション時にID衝突が起きないメリットがあります。
- APIリクエストのトレーシングID — マイクロサービス構成のシステムでは、一つのAPIリクエストが複数のサービスをまたいで処理されます。リクエストごとにUUIDを発行してHTTPヘッダー(X-Request-IDなど)に付与することで、ログ解析時に特定リクエストの処理経路を追跡できます。
- 一意なファイル名の生成 — ユーザーがアップロードしたファイルをサーバーに保存する際、元のファイル名をそのまま使うとディレクトリトラバーサルや同名ファイルの上書きといったリスクがあります。UUIDをファイル名に使うことで、安全かつ衝突のないファイル管理が実現できます。
- テストデータの準備 — ユニットテストや結合テストで複数のエンティティを作成する際、IDとして使えるUUIDをまとめて生成しておくと便利です。10件一括生成してそのままテストコードに貼り付けることができます。
UUIDのバージョンと使い分け
UUIDには複数のバージョンがあり、用途によって使い分けることが推奨されています。
- v4(ランダム)
- 122ビットが完全にランダムな値で構成されます。生成のたびに異なる値が得られ、順序性はありません。最も広く普及しているバージョンで、データベースの主キーやトークンなど多くの用途に適しています。
- v7(タイムスタンプ付きランダム)
- 先頭48ビットにUnixミリ秒タイムスタンプが埋め込まれ、残りがランダムな値です。時系列順に並べることができるため、インデックスの断片化が起きにくく、データベースの書き込みパフォーマンスが向上します。新規プロジェクトではv4よりv7を選ぶメリットがある場面が増えています。
- v5(名前ベース・SHA-1)
- ネームスペースと名前の組み合わせから決定論的にUUIDを生成します。同じ入力に対して常に同じUUIDが得られるため、リソースURLからIDを導出したい場合や、冪等性が必要な処理に向いています。
衝突確率について
UUID v4の衝突確率は現実的にはほぼゼロです。122ビットのランダム空間には約5.3×10³⁶通りの値が存在します。1秒間に10億個のUUIDを生成し続けたとしても、最初の衝突が起きるまでの期待値は数十億年以上になります。一般的なアプリケーションの規模であれば、衝突を実用的な問題として考慮する必要はありません。
プライバシーについて
UUIDの生成・デコード・バリデーションはすべてブラウザ内で処理されます。入力した値やコピーしたUUIDがサーバーに送信されることはありません。
関連ツール
- ハッシュ生成ツール — MD5・SHA-1・SHA-256などのハッシュ値を生成します。ファイルの整合性確認やパスワードのハッシュ化に使えます。
- パスワード生成ツール — 任意の長さ・文字種でランダムなパスワードを生成します。APIキーやシークレットトークンの生成にも活用できます。