m moji kit v1.0.9
ID
生成

UUID 生成

crypto.randomUUID() を使い、衝突可能性が極めて低い UUID v4 を 1〜100 個まとめて生成します。大文字化、ハイフンなし表記の切替に対応。

こんなときに使う

DB の主キーとして使う

PostgreSQL の uuid 型や MySQL の CHAR(36) で主キーに使う ID を作ります。連番より分散書き込みに強く、外部に推測されにくい利点があります。

イベント / リクエスト ID としてログに紐付ける

リクエストごとに UUID を発行して x-request-id ヘッダや構造化ログに含め、複数サービス間で 1 リクエストの追跡を可能にします。

テスト用のダミー ID を量産する

ステージング環境やユニットテストで「重複しないがそれっぽい」識別子が必要なとき、本ツールで 100 個まとめて生成します。

ファイル名に乱数サフィックスを付けて衝突回避

アップロードファイルや一時ファイルの名前に UUID を付与し、同名衝突を防ぎます。ハイフンなしモードを使うとパスを短くできます。

S3 / GCS のオブジェクトキー設計

オブジェクトストレージのキーに UUID を含めて、列挙されにくい URL を作ります。CDN キャッシュキーにも有効です。

Kafka / NATS などのメッセージ ID として

メッセージブローカーで重複排除(idempotency key)として UUID を使うと、再送による副作用を防ぎやすくなります。

CLI / 他言語でやる方法

uuidgen (macOS / Linux)
uuidgen

デフォルト v4。--time で v1 も生成可能(macOS / Linux で挙動差あり)。

Python
python -c "import uuid; print(uuid.uuid4())"

標準ライブラリのみで生成可能。

Node.js
node -e "console.log(require('crypto').randomUUID())"

Node 14.17+ で利用可能。本ツールと同じ実装。

よくある質問

なぜ v4 ですか?v1 や v7 は?
v4 は完全乱数で衝突可能性が極めて低く、汎用的です。v1 は MAC アドレスを含み追跡可能、v7 は時刻順ソート可能で新しい用途に向いています。本ツールは現状 v4 のみ対応です。
重複する確率はどのくらいですか?
v4 は 122 ビットの乱数なので、年間 10 億個生成しても衝突確率は事実上無視できます。誕生日問題で見ても 1 兆個程度生成して 10 万分の 1 程度です。
暗号学的に安全ですか?
crypto.randomUUID() はブラウザの暗号学的乱数源(CSPRNG)を使います。連番のように予測される心配はありません。
ハイフンなしモードはどう違いますか?
見た目だけの違いです。8-4-4-4-12 の区切りハイフンを取り除いて 32 文字の連続した 16 進数になります。容量を節約したい URL パスや短い ID 用途に使えます。
大文字化すると一意性に影響しますか?
影響しません。表記の違いだけで、同じ UUID を扱うシステム間では小文字に正規化されることが多いです。RFC 4122 では小文字推奨ですが、大文字でも有効です。
ULID / Snowflake と何が違いますか?
ULID は時刻順にソート可能でアルファベット順比較に使え、Snowflake はサーバーごとの ID 割り当てがあります。UUID v4 は時刻情報を含まないため、DB のインデックス分散には向きますが、時系列ソートには向きません。
サーバーに送信されますか?
送信されません。生成はブラウザ内の crypto.randomUUID() で完結します。
一度に何個まで生成できますか?
本ツールでは UI 上 100 個まで選択できます。さらに必要なら CLI(uuidgen のループ等)の利用を推奨します。

もっと深く知る

学習サイト / 記事

関連ツール