🆔 ULID生成

結果
「生成」ボタンを押してください

48ビットのミリ秒タイムスタンプと80ビットのランダム値を組み合わせた、辞書順にソート可能なユニークID「ULID」を生成するツールです。UUIDと違い、生成順に文字列としてもソートできるのが特徴です。

使い方

  1. 生成する個数を指定します。
  2. 「生成」ボタンを押すとULIDのリストが表示されます。
  3. 個別または一括でクリップボードにコピーできます。

計算の仕組み

ULID(Universally Unique Lexicographically Sortable Identifier)は、作った順に文字列として並べ替えられる一意のIDです。UUIDと同じ128ビットですが、26文字と短く、先頭が時刻になっているのが特徴です。 構成 ・先頭10文字: 1970年1月1日からのミリ秒数(48ビット) ・後ろ16文字: 暗号学的に安全な乱数(80ビット) 文字には、クロックフォードのBase32(0〜9とA〜Z、ただし見間違えやすいI・L・O・Uを除く32文字)を使います。先頭の時刻部分が大きい順に並ぶため、ULIDを文字列として並べ替えると、作られた順番になります。このツールは、ULIDの先頭部分から作成日時を読み取って表示することもできます。

計算例

ULIDの例 01J8GZ5N3K7Q9V2XWM4YBTCRHE 先頭10文字「01J8GZ5N3K」: 作成したミリ秒単位の時刻 残り16文字: ランダムな部分 同じミリ秒の間に作ったULIDどうしは乱数の部分で並ぶため、作った順とは限りません。

使用上の注意

  • データベースの主キーに使うと、作成順に並ぶため、ランダムなUUID v4よりインデックスの効率がよくなることがあります。
  • ULIDから作成日時がわかるため、作成時刻を知られたくない用途には向きません。
  • 同じ用途には、2024年にRFC 9562で標準化されたUUIDバージョン7もあります。

よくある質問

ULIDとUUIDの違いは何ですか?

UUIDは基本的にランダムな値のため生成順とソート順が一致しませんが、ULIDは先頭にタイムスタンプを含むため、文字列としてソートするだけで生成時刻順に並びます。

ULIDはどんな文字を使いますか?

視認性を高めるため、I・L・O・Uを除いたCrockfordのBase32(0-9とA-Z の一部)、26文字で表現されます。

ULIDの構造を教えてください。

先頭10文字が48ビットのミリ秒タイムスタンプ、残り16文字が80ビットのランダム値をエンコードしたものです。