DevTools Japan トップへ

ULID / NanoID / UUID v7 生成

ソート可能・URLセーフなモダンIDをまとめて生成(100%ブラウザ内処理)

ID種類を選択

生成結果

「生成する」を押すとここにIDが表示されます。

ULID タイムスタンプ復号

埋め込まれた生成日時
ULIDの先頭10文字からミリ秒タイムスタンプを復元します。

比較:どれを選ぶ?

種類長さソート文字種主な用途
UUID v436不可16進+ハイフン汎用・完全ランダム
UUID v736時系列可16進+ハイフンDB主キー(RFC 9562)・標準互換
ULID26時系列可Crockford Base32DB主キー・ログ・短く見せたい
NanoID21(既定)不可URLセーフ64種URL・短縮リンク・APIキー
CUID224(既定)不可英小文字+数字推測されにくい汎用ID・HTML id
すべての生成はお使いの端末内(JavaScript)で完結し、IDがサーバーへ送信されることはありません。乱数は暗号論的に安全な crypto.getRandomValues を使用しています。ULIDは48ビットのミリ秒タイムスタンプ+80ビットの乱数、UUID v7はRFC 9562準拠のレイアウト(バージョン7・バリアント)で生成します。

モダンID生成ツールの使い方

ULID・NanoID・UUID v7・CUID2という、2025〜2026年にかけてUUID v4に代わって普及が進む「モダンな一意識別子(ID)」を、ブラウザだけで無料生成できるツールです。上部のタブでID種類を選び、生成個数(1〜100)を指定して「生成する」を押すだけで、まとめてIDを作成できます。各IDは個別にコピーでき、「すべてコピー」「CSV出力」「JSON出力」で一括して持ち出せるため、テストデータ作成やDBのシード、APIのサンプル値づくりにそのまま使えます。

ULIDでは「単調増加(monotonic)」オプションを有効にすると、同一ミリ秒内で生成しても乱数部をインクリメントして必ず昇順になるよう保証します。NanoIDは文字数と使用文字(アルファベット)を自由に変更でき、URLセーフな短いIDから長い高強度IDまで調整可能です。CUID2も文字数を指定できます。

ULIDのタイムスタンプ復号

ULIDは先頭10文字に48ビットのミリ秒タイムスタンプを埋め込んでいます。本ツールの「ULID タイムスタンプ復号」欄にULIDを貼り付けると、その先頭部分をCrockford Base32からデコードし、埋め込まれた生成日時を人間が読める日付に復元します。ログに残ったULIDから「いつ発行されたIDか」を後から確認したいときに便利です。

なぜ今UUID v4から乗り換えるのか

従来広く使われてきたUUID v4は完全ランダムで、標準性と手軽さから長く定番でした。しかしデータベースの主キーに使うと、ランダムな値がインデックスのあちこちに挿入されるため、B-Treeのページ分割が頻発しキャッシュ効率が落ちるという弱点があります。そこで先頭に時刻を持たせ、新しいレコードほど連続した位置に追記される「時系列ソート可能なID」が注目されています。ULID・UUID v7がその代表で、挿入の局所性が高くインデックスの断片化を抑えられます。

観点おすすめ理由
DB主キー(性能重視)UUID v7 / ULID先頭タイムスタンプで挿入が局所化し断片化を抑制
標準・既存資産の活用UUID v7RFC 9562で標準化、既存のUUID型・ライブラリと互換
URL・短縮リンクNanoIDURLセーフで短く、長さ調整で強度も可変
推測されにくい汎用IDCUID2連番・時刻を露出せず、英小文字+数字で扱いやすい

ソート可能なIDの仕組み

ULIDとUUID v7は、どちらもIDの先頭に「Unixミリ秒時刻(48ビット)」を配置します。文字列やバイト列として比較したとき、時刻部分が上位桁に来るため、単純な辞書順ソートが自動的に生成時刻順のソートになります。ULIDはCrockford Base32という、紛らわしいI・L・O・Uを除いた32文字を使うことで、大文字小文字の混同や誤読を避けつつ人間にも読みやすくしています。UUID v7は残りのビットにバージョン番号(7)とバリアントビット、乱数を格納することで、標準UUIDのフォーマットを保ったまま時系列性を実現しています。

よくある質問

ULIDとUUID v7の違いは何ですか?
どちらも先頭に48ビットのミリ秒タイムスタンプを持ち、生成順(時系列)に並ぶ点は共通です。違いは表現形式で、ULIDは26文字のCrockford Base32(大文字・数字、I/L/O/Uを除く)で表し、ハイフンを含まず辞書順の文字列ソートがそのまま時系列ソートになります。UUID v7はRFC 9562で標準化された36文字のUUID形式で、既存のUUIDカラムやライブラリとの互換性が高いのが利点です。
NanoIDはなぜUUIDより短いのに衝突しないのですか?
NanoIDは既定で21文字・64種類のURLセーフな文字を使い、約126ビットの乱数量を持ちます。これはUUID v4の122ビットとほぼ同等で、暗号論的乱数で生成すれば実用上の衝突確率は極めて低くなります。文字数を増やせばさらに衝突耐性が上がります。
UUID v4の代わりにUUID v7を使うメリットは?
UUID v4は完全ランダムのためDB主キーにするとインデックスの挿入位置がバラつき、ページ分割やキャッシュ効率低下を招きます。UUID v7は先頭がタイムスタンプなので新しいレコードほど末尾に追記され、挿入が局所化して断片化を抑えられ、書き込み性能やレンジ検索が改善します。
CUID2とはどんなIDですか?
CUID2は衝突耐性を重視した英小文字と数字だけの短いID(既定24文字)で、必ずアルファベットで始まります。連番や時刻を露出させず推測されにくくすることを目的とし、時系列ソートには向きません。URLやHTMLのidに使いやすいのが利点です。
結局どのIDを選べばよいですか?
主キーで性能と時系列ソートを両立したいならULID/UUID v7、既存UUID資産を活かすならUUID v7、URLセーフで短いIDならNanoID、推測されにくい汎用IDならCUID2が候補です。まず主キー用途か表示用途かで分け、ソートが必要かで絞ると選びやすくなります。

関連ツール

UUID v4 生成カウントダウン計算