UUIDv7・ULID・Nano ID ジェネレーター

形式と件数を選んでコピーまたはダウンロードします。UUIDv7 と ULID にはブラウザーの時計が 48 ビットのタイムスタンプとして入り、同じミリ秒に作られた値どうしの順序は保証されません。

ブラウザ内でローカルに実行
このツールの処理はすべてブラウザ内で行われます。KivTools が入力内容をアップロード・保存したり、外部 API に送信したりすることはありません。
識別子の設定Web Crypto の乱数を使用します。UUIDv7 と ULID にはローカルタイムスタンプが含まれます。
UUIDv7 または ULID を確認形式で表示されるタイムスタンプ部分のみをデコードします。

UUIDv7・ULID・Nano ID の生成方法

このページはブラウザーの乱数 API で 3 種類の識別子を生成します。UUIDv7(48 ビットのミリ秒タイムスタンプ、バージョンとバリアントのビット、74 ビットの乱数)、ULID(同じ 48 ビットの時刻を Crockford base32 の 10 文字で表し、80 ビットの乱数を加えたもの)、Nano ID(URL セーフな文字集合、長さ 8〜64)。形式と件数(1〜25)を選び、コピーまたはダウンロードします。

処理はすべてこのブラウザー内で完結します。値は送信されず、作業中に通信も発生しません。2 つ目のカードでは、貼り付けた UUIDv7 または ULID のタイムスタンプを読み取ります。

  1. 形式を選びます。UUIDv7 と ULID は現在時刻から始まり、Nano ID は最初の文字から乱数です。
  2. 必要な件数(1・5・10・25)を選び、「ID を生成」を押します。
  3. 「コピー」でバッチを取得し、「ダウンロード」で 1 行に 1 件のテキストファイルを保存します。
  4. タイムスタンプを読み取るには、UUIDv7 または ULID を 2 つ目の欄に貼り付けて「ID を検証」を押します。
  5. 「クリア」で出力・検証欄・レポートを空にしてから次のバッチに進みます。

各形式の中身

生成される値の中身

UUIDv7 は先頭 48 ビットが Unix 時刻(ミリ秒)で、続いてバージョン 7、バリアント 10、74 ビットの乱数が入ります。表示は一般的な 8-4-4-4-12 形式です。ULID は同じ 48 ビットの時刻を先頭 10 文字、80 ビットの乱数を残り 16 文字で表し、いずれも Crockford base32(読み違いを避けるため I・L・O・U を使わない)です。Nano ID は 64 文字の URL セーフな文字集合から作られ、21 文字で約 126 ビットになります。

乱数は window.crypto.getRandomValues から取得します。API がないブラウザーでは生成せず、その旨を表示します。Nano ID の長さは入力欄が示す 8〜64 の範囲で検査します。

タイムスタンプと順序

UUIDv7 と ULID はブラウザーを動かす機械の時計を埋め込むため、同じミリ秒に作られた 2 つの識別子はタイムスタンプを共有し、乱数部分どうしに順序はありません。したがってバッチを並べ替えても保証されるのはミリ秒単位のまとまりまでで、厳密な生成順ではありません。RFC 9562 が rand_a を自由にしているのはこのためです。

タイムスタンプは 48 ビットで、西暦 10889 年に尽きます。検証機能はこの上限に依存しており、Crockford の先頭文字が 7 を超える 26 文字の値は 48 ビットを超えるため、西暦 12004 のような日付を出す代わりに拒否します。

タイムスタンプを読み取る

検証機能が読み取るのはタイムスタンプ部分だけです。ハイフン付き(またはなし)の UUIDv7、大文字・小文字どちらの 26 文字 ULID でも貼り付けられ、レポートは作成時刻を ISO 8601(UTC)で表示します。

復号できるタイムスタンプがない値は拒否します。UUIDv4、ランダムな文字列、48 ビットの範囲に収まらない ULID が該当します。オンライン照会は行わず、時刻は識別子そのものから取り出します。

最近使ったツール: