UUID / IDジェネレーター

複数形式のユニークIDを生成。一括生成、タイムスタンプ解析、カスタムオプション対応。すべてブラウザ上で動作します。

すべてのIDはブラウザ内でローカルに生成されます。サーバーに送信されることはありません。

Tips

UUID v7はデータベース主キーに最適

UUID v7はタイムスタンプを内包し、作成時刻順に自然にソート可能です。完全ランダムなUUID v4がB-treeインデックスでランダムなページ分割を引き起こすのに対し、データベースインデックスのパフォーマンスを大幅に向上させます。

UUID v4の衝突は事実上不可能

With 122 random bits, you would need to generate about 2.7 quintillion UUIDs before having a 50% chance of a single collision. At 1 billion per second, that takes over 85 years.

ULIDはUUIDより短いが同等にユニーク

ULIDはCrockford Base32を使用して、UUIDの36文字に対し26文字に同じ128ビットを収めます。UUID v7同様に時刻ソート可能で、I、L、Oなどの紛らわしい文字を回避します。

NanoIDの長さが衝突リスクを決定する

デフォルトの21文字NanoIDは約126ビットのエントロピーを持ち、UUID v4に匹敵します。短いIDはエントロピーが指数関数的に減少し、10文字のNanoIDは約60ビットしかなく、重要でない用途にのみ適しています。

よくある使い方

🗄️

データベース主キー

UUID v7またはULIDを時刻ソート可能な主キーとして使用し、分散システム間で調整不要でID生成できます。

🔗

URLスラッグとショートID

短縮URL、招待コード、短いIDが好ましい場面でコンパクトなNanoIDを生成します。

📊

イベント追跡とログ

ログ集約や分析パイプライン向けに、時刻順に自然に並ぶユニークなイベントIDを作成します。

🔄

分散システム連携

中央機関なしでグローバルにユニークなIDを生成。各ノードが独立して衝突のないIDを作成できます。

📦

オブジェクトストレージキー

ULIDまたはUUID v7をS3やBlobストレージのキーとして使用し、バケット一覧の時系列順序を維持します。

🧪

テストデータ生成

テストデータベースの投入やモックAPIレスポンス用に、リアルなユニークIDを一括生成します。

よくある質問

UUID v4とUUID v7の違いは?
UUID v4は完全にランダム(122ビットランダム)で予測不能ですがソートできません。UUID v7は先頭48ビットにミリ秒タイムスタンプを埋め込み、ユニーク性を保ちながら作成時刻順にソート可能です。データベースキーにはv7、純粋なランダム性が必要な場合はv4を選びましょう。
ULIDとUUID v7、どちらを使うべき?
どちらも時刻ソート可能な128ビットIDです。UUID v7は公式RFC 9562標準に準拠し、全UUIDライブラリで認識されます。ULIDはよりコンパクト(26文字 vs 36文字)で紛らわしい文字を回避します。標準準拠にはUUID v7、コンパクトさにはULIDを使いましょう。
NanoIDの長さはどのくらいにすべき?
デフォルトの21文字は約126ビットのエントロピーを提供し、UUID v4に匹敵します。ほとんどの用途で21が理想的です。少量の内部IDには12〜16を使用。ユーザー向けや長期保存するIDは10文字未満にしないでください。
このIDはブラウザだけで生成されている?
はい。すべてのIDはWeb Crypto API(crypto.getRandomValues)とJavaScriptを使用してブラウザ内で完全に生成されます。サーバーに送信されることはありません。インターネットを切断しても動作し続けることで確認できます。
UUIDの衝突は実際に起こり得る?
Theoretically yes, but practically no. UUID v4 has 122 random bits, giving 5.3 x 10^36 possible values. You would need to generate about 2.7 x 10^18 UUIDs for a 50% collision chance. No real-world system has ever reported a UUID v4 collision from a proper random source.
UUID v7やULIDからタイムスタンプを抽出できる?
はい。UUID v7は先頭48ビットにUnixミリ秒タイムスタンプを格納し、ULIDは先頭10文字のCrockford Base32(同じく48ビット)に格納します。このツールはこれらの形式のデコードされたタイムスタンプを自動表示します。