UUID生成ツール
crypto.randomUUID() を使用した UUID v4 生成、v1(タイムスタンプ)にも対応。フォーマット変換・一括生成・バリデーター付き。
UUIDとは?
UUID(Universally Unique Identifier)は128ビットの識別子で、分散システムで中央管理なしにユニークなIDを生成するために設計されています。RFC 4122 / RFC 9562 で標準化されており、xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx の形式(32桁の16進数・ハイフン区切り)で表記されます。
GUIDとの違い:GUID(Globally Unique Identifier)はMicrosoftによるUUIDの実装名です。技術的には同じ128ビット識別子で相互運用できます。Windowsや.NET環境ではGUIDと呼ばれることが多いです。
v1 / v4 / v7 の違い
| バージョン | ベース | 特徴 | 推奨用途 |
|---|---|---|---|
| v4 | 完全ランダム | 122ビットのランダム値。最も広く普及 | Web API・セッションID・一般的な用途 |
| v7 ★ | Unixタイムスタンプ(ms)+乱数 | 時刻順ソート可能。DBインデックスに最適 | 新規開発のDB主キー(PostgreSQL/MySQL) |
| v1 | Gregorianタイムスタンプ+MACアドレス | ソート可能だが形式が複雑。プライバシーリスクあり | レガシーシステムとの互換性が必要な場合 |
使い方
- バージョン(v4推奨・v7 DB主キー向け・v1 レガシー)を選択します
- フォーマット(ハイフンあり/なし・大文字・波括弧等)を指定します
- 生成件数(1〜100件)を設定します
- 「生成する」ボタンをクリックします
- コピー、またはCSV/JSON形式でダウンロードします
こんな時に便利
- データベースの主キーとして使うUUIDをまとめて生成するとき(v7推奨)
- 開発環境のシードデータや固定テストIDとしてUUIDを作成するとき
- 受け取ったUUID文字列のバージョン・バリアントをバリデートするとき
UUID生成のコード例
// v4(ブラウザ・Node.js 19+)
crypto.randomUUID();
// v7(uuid パッケージ)
import { v7 as uuidv7 } from 'uuid';
uuidv7(); // ramsey/uuid(推奨)
use Ramsey\Uuid\Uuid;
echo Uuid::uuid4()->toString();
echo Uuid::uuid7()->toString();
// Symfony UIDコンポーネント
use Symfony\Component\Uid\Uuid;
(string) Uuid::v7(); import uuid
# v4(標準ライブラリ)
str(uuid.uuid4())
# v7(Python 3.13+)
str(uuid.uuid7())
# v7(python-uuid7 パッケージ)
from uuid_extensions import uuid7str
uuid7str() よくある質問
Q. UUID v4とv7の違いは何ですか?
v4は完全なランダム値で最も広く使われます。v7はUnixミリ秒タイムスタンプ+乱数で生成され、時刻順にソートできるためDB主キーに最適です。Bツリーインデックスのホットスポット問題が起きにくい点が大きなメリットです。
Q. UUIDとGUIDは違うものですか?
実質的に同じです。GUIDはMicrosoftによるUUIDの実装名で、技術的には同じ128ビット識別子です。相互運用でき、Windowsや.NET環境ではGUIDと呼ばれることが多いです。
Q. DBの主キーにUUIDを使う際の注意点は?
v4はランダムなためBツリーインデックスが分散し、大規模DBで挿入パフォーマンスが低下することがあります。新規開発ではv7(時刻順)の使用を推奨します。MySQLではUUID_TO_BIN(uuid, 1)でバイナリ保存するとさらに効率的です。
Q. 生成したUUIDが重複することはありますか?
UUID v4は122ビットのランダム値で、同一UUIDが生成される確率は天文学的に低く実用上は重複しません。1秒間に10億個生成しても衝突は数十億年に1回程度の確率です。
Q. 生成されたUUIDはどこかに記録されますか?
いいえ。すべてブラウザ内で生成・表示されるだけで、外部への送信や記録は一切ありません。