UUID・ULID ジェネレーター
UUID v4・UUID v7・ULID をまとめて生成できます。IDを貼り付ければ、バージョン、バリアント、タイムスタンプを確認できます。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
console.log(crypto.randomUUID())概要
UUID と ULID をまとめて生成します。既存の ID を貼り付けて、バージョン、バリアント、タイムスタンプを読み取ることもできます。ID はブラウザの安全な乱数生成器で作られ、端末の外には出ません。
使い方
- UUID v4(完全にランダム)、UUID v7(時間順)、ULID(時間順、26文字)のいずれかを選びます。
- 必要な個数を設定し、大文字とハイフンを選びます。
- 生成を押します。ID は1行に1つずつ入力欄に表示され、それぞれの詳細が出力欄に表示されます。
- 自分の ID を1行に1つずつ貼り付けて調べることもできます。波括弧、
urn:uuid:のプレフィックス、ハイフンなしの形式も受け付けます。
例
バージョン7の UUID と、ツールがそこから読み取った内容です。
017f22e2-79b0-7cc3-98c4-dc0c0c07398f
v7 · RFC 9562 · 2022-02-22T19:22:22.000Z
知っておくと便利なこと
- バージョン7と ULID はミリ秒のタイムスタンプで始まるため、作成した順に並びます。これによりデータベースのインデックスが小さく保たれます。
- 同じミリ秒に作られた ID は増えていく値になるので、一意性と順序が保たれます。
- バージョン4からは、いつ作られたかは分かりません。
- nil UUID(すべて0)と max UUID(すべて1)は、特別な値として認識されます。
UUID と ULID とは?
UUID は、調整なしにどこでも生成できる128ビットの識別子です。バージョン4は完全にランダムです。バージョン7は先頭にミリ秒のタイムスタンプを持つため、IDは作成順に並び、データベースのインデックスをコンパクトに保てます。ULID は UUID バージョン7と同じ情報を26文字で表します。
よくある質問
データベースのキーにはどれを使うべき?
バージョン7か ULID がおすすめです。どちらも作成時刻順に並ぶので、新しい行がインデックス内に散らばらず末尾に追加されます。作成時期を知られたくない場合はバージョン4を使ってください。
2つのIDが衝突することはある?
バージョン4には122ビットのランダム値があり、衝突は事実上起こりません。バージョン7と ULID はタイムスタンプとランダム値を組み合わせ、同じミリ秒内のIDは順に加算されるため、一意性と順序が保たれます。
このツールはIDをどこかに送信する?
いいえ。IDはブラウザの安全な乱数生成器で作られ、お使いの端末上で検査されます。入力した内容が当社のサーバーに送信されることはありません。