ツール

無料オンラインUUID / ULID / NanoID生成ツール

ブラウザ内でUUID v4、UUID v1、ULID、NanoIDを即座に生成できます。一度に最大100件まで対応。100%クライアントサイドで動作し、サーバーへデータは送信されません。

すべての生成処理はWeb Crypto APIを使ってブラウザ内でローカルに行われます。生成されたIDやテキストがサーバーに送信されることは一切ありません。

UUIDとは?

UUID(Universally Unique Identifier:汎用一意識別子)は、RFC 4122で定義された128ビットのラベルです。UUID v4は5×10³⁶通り以上のパターンを持つため、同じUUIDが二度生成される確率は天文学的に低いといえます。UUIDを使うことで、データベースの行やAPIリソース、セッショントークンなど、中央の管理者やカウンターを必要とせずに分散システム全体で一意の識別子を作成できます。

UUID v4 と UUID v1、ULID、NanoIDの違い

用途に合った識別子を選びましょう。

UUID v4(128ビットのランダム値)

完全にランダムな値です。すべてのモダンなデータベースや言語がネイティブにサポートする、最も広く使われている形式です。時系列情報は含まれません。crypto.randomUUID()で生成できます。

UUID v1(タイムスタンプベース) レガシー

タイムスタンプを埋め込み、時系列順のソートを可能にします。元の仕様ではMACアドレスが露出するプライバシー上の懸念があるため、新規システムでは非推奨です。ソート性が必要な場合はULIDの使用をおすすめします。

ULID(辞書順ソート可能な一意識別子)

作成時刻順に辞書順ソートが可能です。Prisma、Drizzleなど、あらゆるORMでデータベースの主キーとして最適です。26文字のCrockford Base32形式で、URLセーフかつ大文字小文字を区別しません。

NanoID(コンパクトなURLセーフID)

わずか21文字(UUIDの36文字に対して)で、URLセーフな文字セット(A-Za-z0-9_-)を使用します。長さも設定可能です。URLスラッグや短いトークン、生成される識別子に最適です。

各識別子を使うべき場面

正しいID形式を選ぶための実践的なガイドです。

UUID v4 → データベースの主キー

PostgreSQL(uuid型)、MySQL(CHAR(36))など、UUIDをネイティブにサポートするデータベースの主キーとしてUUID v4を使用します。主要なORMすべてでサポートされています。

UUID v1 → 時系列順のログファイル

ログファイル名やイベントの順序付けのためにタイムスタンプ埋め込み型のIDが必要なレガシーシステム向けです。新規プロジェクトではULIDの使用をおすすめします。

ULID → ORMでのソート可能な主キー

別途タイムスタンプ列を用意せずに作成時刻順でソートできる主キーが必要な場合はULIDを使用します。Prisma、Drizzle ORM、TypeORMですぐに利用できます。

NanoID → URL短縮・コンパクトなトークン

URLスラッグや短命なトークンなど、コンパクトさとURLセーフ性が重要な場面ではNanoIDを使用します。長さを調整して衝突確率と可読性のバランスを取れます。

よくある質問

UUIDはハイフン付きの36桁の16進文字で表現される128ビットの識別子です(例:550e8400-e29b-41d4-a716-446655440000)。ULIDも128ビットですが、26文字のCrockford Base32で表現され、作成時刻順に辞書順ソートが可能です。ULIDはMACアドレスの露出を回避する、UUID v1に代わるモダンな形式です。

理論上はあり得ますが、その確率は無視できるほど小さいです。UUID v4は122ビットのランダム性を持ち、約5.3×10³⁶通りの値を生成できます。衝突確率50%に達するには、約2.7×10¹⁸個のUUIDを生成する必要があり、現実的なシステムでは起こり得ません。

はい。UUID v4は分散システムにおける主キーとして広く使われています。連番の整数と比較した際の主なトレードオフはB-treeインデックスの断片化です。挿入順序が重要な場合は、時系列順にソートされ断片化を減らせるULIDの使用を検討してください。

NanoIDはURLセーフな文字セットを使い、より短いID(デフォルトで21文字、UUIDは36文字)を生成します。長さは設定可能で、短いIDほど衝突確率は高くなり、長いIDほど安全性が高まります。NanoIDはUUIDの36文字という長さが不都合なURL、スラッグ、コンパクトなトークンに最適です。