ULID ジェネレーター&インスペクター
並べ替え可能な ULID を生成し、タイムスタンプを読み取る
オプション
1 回の生成で 1〜1,000 個。
同じミリ秒の ULID は 1 ずつ増えるため、まとめて生成しても順序が保たれます。
出力
オプションを選んで「ULID を生成」を押してください。
ランダム部はブラウザーの crypto.getRandomValues で生成されます。ULID からは作成日時がわかるため、秘密情報やアクセストークンには使わないでください。 RFC 9562 の UUID が必要ですか? UUID ジェネレーターを開く
ULID とは
ULID(Universally Unique Lexicographically Sortable Identifier)は、26 文字の Crockford Base32 で表す 128 ビットの識別子です。先頭 10 文字がミリ秒単位の 48 ビット Unix タイムスタンプ、残り 16 文字が 80 ビットの乱数なので、文字列のまま作成順に並べ替えられ、実用上衝突しません。
使い方
- 1.「生成」を選び、必要な ULID の数と、タイムスタンプを現在にするかカスタム日時にするかを指定します。
- 2.同じミリ秒内でも順序を保ちたい場合は「単調増加」をオンにします。
- 3.「ULID を生成」を押し、個別にコピー、すべてコピー、またはテキスト・JSON・CSV・SQL・コードとしてダウンロードします。
- 4.「検査」を選び、1 行に 1 つずつ ULID を貼り付けると、検証とタイムスタンプの確認ができます。
ULID と UUID の違い
どちらも 128 ビットの識別子です。ULID はテキストが短く(36 文字ではなく 26 文字)、作成順に並び、紛らわしい文字を使いません。ランダムな UUID v4 からは作成時期がわかりません。データベースの列が UUID を求める場合、検査結果に各 ULID の UUID 表記が表示されます。時刻順の標準的な代替は UUID v7 です。
検証ルールと制限
有効な ULID は、I・L・O・U を除く 0-9 と A-Z のちょうど 26 文字で、タイムスタンプが 48 ビットに収まるよう先頭の文字は 0-7 です。入力は大文字・小文字を区別せず大文字に正規化します。I・L・O を 1 や 0 として読み替えることはせず、無効として扱います。生成には crypto.getRandomValues を使い、処理はすべてブラウザー内で行われ、保存や送信はされません。ULID を見れば誰でもタイムスタンプを読めるため、作成日時を秘密にしたい場合や推測されてはいけないトークンには使わないでください。
