ULID デコーダー (タイムスタンプ & ランダム)
開発
ULID は 26 文字の辞書順ソート可能な識別子です:先頭 10 文字が 48 ビットのミリ秒タイムスタンプ、末尾 16 文字が 80 ビットのランダム値で、すべて Crockford Base32 です。時刻が上位ビットにあるため ULID は生成順にソートされ、これが人々がランダムな UUID の代わりに ULID を使う理由です。このデコーダーは ULID を分解します:タイムスタンプを読み取り ISO UTC、相対表示「x 前」、生のエポックミリ秒で表示し、ランダム部分を Crockford Base32 と hex の両方で表示します。復号は大文字小文字を区別せず、古典的な Crockford の紛らわしい文字を寛容に扱います — I と L は 1、O は 0 として読みます — また長さ・アルファベット・タイムスタンプが 48 ビットを超えないこと(先頭文字は 0–7)を検証します。すべてローカルで動作し、アップロードされません。
先頭 10 文字 = 48 ビット ms タイムスタンプ、末尾 16 文字 = 80 ビットランダム。Crockford Base32:I/L→1、O→0、大文字小文字を区別しない。
使い方
- ULID を貼り付け(26 文字、例:01ARZ3NDEKTSV4RRFFQ69G5FAV)。
- 生成タイムスタンプ(UTC・相対・エポック ms)を読みます。
- タイムスタンプやランダム値を Crockford または hex で必要に応じてコピー。
よくある質問
- ULID はどう時刻を符号化しますか?
- 先頭 10 文字の Crockford Base32 が Unix エポック(1970-01-01)以降のミリ秒の 48 ビットカウントを保持します。48 ビットは西暦 10889 年までをカバーするため、先頭文字は 0–7 のみ可能で、それより大きいとオーバーフローとして無効になります。残り 16 文字は 80 ビットのランダム値です。
- なぜ復号は大文字小文字を区別しないのですか?
- ULID は人に優しく設計された Crockford Base32 を使います:大文字小文字を区別せず、視覚的に紛らわしい I・L を 1、O を 0 として扱います。本ツールは復号前にこれを正規化するので、小文字で入力したり 0 の代わりに O を使っても正しく復号されます。
- ULID は UUID とどう違いますか?
- どちらも 128 ビット ID ですが、ULID はタイムスタンプを上位ビットに持つ 26 文字のソート可能な Base32 で符号化され、ULID のリストはすでに生成順です。ランダムな UUID(v4)は時刻を持たず意味のあるソートができません。UUID v7 が同じ要求への標準的な答えで、それは UUID インスペクタを使ってください。
- タイムスタンプは正確ですか?
- はい — ミリ秒タイムスタンプは ULID に直接保存されるため、生成器の時計が正確であれば生成時刻はミリ秒単位で正確です。相対時間はお使いのデバイスの現在時計に対して計算されます。
関連ツール
Base64 ↔ 16進数 変換
Base64 文字列を16進数バイトに、16進数を Base64 に戻します。URL セーフ対応、ブラウザ上で動作します。
Quoted-Printable エンコーダー & デコーダー
テキストを MIME Quoted-Printable(RFC 2045)にエンコード、または復号 — =XX エスケープ・ソフト改行・UTF-8 に対応、エンコード時は 76 文字で折り返し — ブラウザ内で。
ハッシュ生成 (SHA)
テキストから SHA-1・SHA-256・SHA-384・SHA-512 ハッシュを生成。
URL エンコーダー / デコーダー
URL 用にテキストをパーセントエンコード、または URL をデコード。
Base64 エンコーダー / デコーダー
テキストを Base64 にエンコード、または Base64 をテキストにデコード。
JSON フォーマッター & バリデーター
ブラウザで JSON を整形・並べ替え・圧縮・検証できます。