ULID ジェネレーター(オンライン)
ソート可能な ULID を生成し、埋め込まれたタイムスタンプをデコードし、ULID と UUID を相互変換します — すべてブラウザ内で。何もアップロードされません。
ULID ジェネレーターはすべてブラウザ内で動作します。ランダム性は Web Crypto API から得られ、生成・デコード・変換する ULID が端末から離れることも ArrayKit に届くこともありません。
UUID ジェネレーターを開く
ULID ジェネレーター について
ULID ジェネレーターは、辞書順でソート可能な識別子である ULID を生成します。ULID は 48 ビットのミリ秒タイムスタンプと 80 ビットのランダム性を、コンパクトな 26 文字の Crockford base32 文字列に詰め込みます。単一の ULID や数百のバッチを生成し、同じミリ秒に作られた ID も作成順にソートされるようモノトニックモードを切り替え、データベースが好む形式に合わせて大文字小文字を切り替えられます。デコードモードはその逆を行います: 任意の ULID を貼り付けると、正確な作成時刻をエポックミリ秒と ISO-8601 タイムスタンプとして読み戻せます。組み込みのコンバーターは、ULID をその等価な 128 ビットの UUID に、また元に、1 ビットも失わずに変換します。時刻でソートされるデータベースキー・ログの相関 ID・UUID の代替が必要なときに便利です。ランダムバイトはブラウザの Web Crypto API から得られ、すべての ULID は端末上で構築されるため、生成したものがサーバーに送られることは決してありません。
機能
- 単一の ULID または一度に最大 500 のバッチを生成
- モノトニックモードはランダムフィールドをインクリメントし、同一ミリ秒の ID も正しくソート
- 末尾 80 ビットの強力なランダム性のために Web Crypto API を使用
- 任意の ULID を埋め込まれたエポックミリ秒と ISO-8601 タイムスタンプにデコード
- ULID とその等価な 128 ビット UUID を可逆的に変換
- スキーマに合わせて大文字または小文字で出力
- Crockford base32 のアルファベットは I・L・O・U を除いて誤字を避ける
- バッチ全体または単一 ID をワンクリックでコピー
ULID ジェネレーター の使い方
- Generate タブを選んだまま、必要な ULID の数を設定します
- 時刻順のキーには Monotonic を有効に、独立したランダム末尾には無効にします
- 出力ボックスから ULID またはバッチ全体をコピーします
- Decode に切り替えて ULID のタイムスタンプを読むか、ULID to UUID で変換します
例
入力
01ARZ3NDEKTSV4RRFFQ69G5FAV
出力
timestamp: 1469922850259 (2016-07-30T23:54:10.259Z)
uuid: 01563e3a-b5d3-d676-4c61-efb99302bd5b
最初の 10 文字が作成時刻にデコードされ、128 ビットすべてが UUID にマッピングされます。
よくあるエラーとトラブルシューティング
- 正しく見えるのにデコードが ULID は無効だと報告する。 — ULID はちょうど 26 文字です。前後の引用符や空白を取り除いてください。また、48 ビットのタイムスタンプがオーバーフローしないよう、最初の文字は 0~7 でなければならないことに注意してください。
- タイトなループで作成した 2 つの ULID が順不同でソートされる。 — Monotonic を有効にしてください。有効にしないと、同じミリ秒を共有する ID は独立したランダム末尾を得て、任意の順序でソートされることがあります。
- データベースが小文字の ULID を拒否する。 — Crockford base32 は正準では大文字です。Lowercase トグルを無効にするか、デコードはどちらの大文字小文字も受け付けるため、大文字小文字を区別せずに保存してください。
- 変換された UUID がバージョン 4 の UUID に見えない。 — ULID にはバージョンやバリアントのビットがないため、その UUID 形式はバージョンのニブルに 4 を持ちません。これは想定どおりで、変換は UUID のレイアウトではなく生の 128 ビットを保持します。
よくある質問
- ULID とは何で、UUID とどう違いますか?
- ULID は 26 文字の Crockford base32 で書かれる 128 ビットの識別子です。ランダムな UUIDv4 と異なり、先頭のビットがミリ秒タイムスタンプなので、ULID はグローバルに一意でありながらプレーンなテキストとして作成順にソートされます。
- モノトニックな ULID 生成はどう機能しますか?
- 同じミリ秒内に複数の ULID を生成するとき、モノトニックモードは新しいランダム性を引く代わりに、そのミリ秒のランダムフィールドを再利用して各新規 ID ごとに 1 を加えます。これにより各 ULID が前のものより厳密に大きいことが保証されます。
- ULID から作成時刻を復元できますか?
- はい。最初の 10 文字が 48 ビットのミリ秒タイムスタンプをエンコードします。ULID を Decode モードに貼り付けると、ツールが正確なエポックミリ秒の値と対応する ISO-8601 の日時を表示します。
- ULID から UUID への変換は可逆ですか?
- はい。ULID と UUID はどちらも 128 ビットを保持するため、コンバーターはすべてのビットを損失なくマッピングします。ULID を UUID に変換して元に戻すと、正確に元の ULID が得られます。
- アルファベットが I・L・O・U を除くのはなぜですか?
- ULID は Crockford base32 を使い、ID が読みやすく打ち間違えにくいよう I・L・O・U を省きます。デコード時には利便性のため、I と L を 1 として、O を 0 として受け付けます。
- ここで生成する ULID は非公開ですか?
- はい。すべての ULID はランダム性に Web Crypto API を使ってブラウザ内で構築されます。生成・デコード・変換する ID が ArrayKit やどのサーバーにも送られることはありません。
関連ツール
すべての ArrayKit ツール