totonoe

ITを整える

中級

UUID・ULIDを整える

= 世界でかぶらない番号(UUID/ULID)を作って・確かめる

プログラムで「世界でかぶらない番号(ID)」を作るときに使う UUID と ULID を、その場で生成・検証できる道具です。何個でもまとめて作れて、貼り付ければ妥当性や埋め込まれた時刻も読み取れます。乱数はこの端末の暗号乱数(crypto)で作り、入力も結果も外には一切出ません(送信ゼロ)。

i

TLDR — 30秒で分かる

プログラム用の「世界でかぶらない番号」=UUID v4ULID を、その場で生成・整形・検証。ULIDは時刻つきでソート可。乱数はブラウザの暗号乱数、送信ゼロ

主な機能を見る
  • UUID v4 を個数指定(1〜100)でまとめて生成
  • ULID 生成(時刻48bit+乱数80bit・26文字・生成順ソート可)
  • ハイフン有無・大文字小文字・波括弧トグル+NIL UUID+全部コピー
  • 貼り付けた文字列の UUID 判定(バージョン・バリアント)
  • ULID 判定と埋め込み時刻の復元表示
  • 暗号乱数・生成も検証もブラウザ内完結(送信ゼロ)
UUID v4 を生成 ランダム・暗号乱数(送信ゼロ)
表示形式:

v4 は完全にランダム。理論上は衝突(同じ値が出ること)が起きえますが、確率は天文学的に小さく実用上ゼロです(保証はしません)。

ULID を生成(時刻つき・ソート可) 時刻48bit + 乱数80bit

ULID は先頭に生成時刻が入るため、生成順におおむね辞書順ソートできます(同一ミリ秒内の前後は保証しません)。26文字・Crockford Base32(紛らわしい I/L/O/U を除く)。

特殊な UUID

NIL UUID(全ゼロ)

00000000-0000-0000-0000-000000000000

「IDなし」を表す予約値。上の表示形式トグルに連動します。

貼って検証(UUID / ULID 判定) 貼り付けるそばから判定

UUID と ULID・要点4つ

「世界でかぶらない番号」を、サーバに頼まず自分で作る。

  1. 1

    UUID v4 = ほぼ全部ランダム

    128bit のうち 122bit が乱数。形式は 8-4-4-4-12 の36文字で、13文字目が必ず「4」(バージョン)、17文字目が 8 / 9 / a / b(バリアント)になります。数が膨大なので、別々の端末が同時に作っても実質ぶつかりません。

  2. 2

    ULID = 時刻つきでソートできる ID

    先頭48bit に生成時刻(ミリ秒)、残り80bit が乱数。26文字の Crockford Base32 で、見た目で並べるとおおむね生成順になります。データベースの主キーに使うと、ランダムな UUID v4 より挿入が素直になりやすいのが利点。逆順に時刻を取り出すこともできます(このページの検証で確認できます)。

  3. 3

    形は自由に整えられる

    UUID はハイフンを取った32桁ベタ書き、大文字、{…} 波括弧つき(Windows レジストリなどで見る形)など、用途で書き方が変わります。中身は同じなので、上のトグルで貼り替えられます。

  4. 4

    乱数はブラウザの暗号乱数

    このツールは crypto.randomUUID() / crypto.getRandomValues() を使います。Math.random() のような予測されうる乱数ではなく、暗号用途に耐える乱数です。生成も検証もすべてこの端末の中で完結し、サーバには送られません(送信ゼロ)。

⚠ ひとこと注意

UUID v4 の衝突は実質ゼロですが、数学的に「絶対起きない」保証ではありません。ULID は生成順ソートできる反面、IDから生成時刻が読めるため、時刻を隠したい場面では向きません。どちらも「秘密の値(パスワード・トークン)」ではないので、推測されて困る用途には別の仕組みを使ってください。

🔒 生成・検証はすべてあなたのブラウザの中(Web Crypto API と純JavaScript)で完結します。作った ID も貼り付けた文字列もサーバには送られません(送信ゼロ)。

よくある質問

Q. UUID と ULID はどう違いますか?
A. UUID v4 は完全ランダムな128bit ID。ULID は先頭に生成時刻が入る26文字で、生成順におおむねソートできます。並び順が欲しいなら ULID、純粋に一意でよければ UUID v4 です。
Q. UUID v4 は本当にかぶらないのですか?
A. 122bit の乱数なので衝突確率は天文学的に小さく、実用上ゼロです。ただし数学的に「絶対起きない」保証ではありません。
Q. 生成した値はサーバに送られますか?
A. いいえ。crypto.randomUUID / crypto.getRandomValues でこの端末の中だけで作られ、貼り付けた検証文字列も外に出ません(送信ゼロ)。
Q. ULID から時刻が読めるのは問題ですか?
A. 用途次第です。並び替えや作成時刻の把握に便利な反面、ID から生成時刻が分かるので、時刻を秘密にしたい場面では UUID v4 が向きます。
Q. ハイフンなし・大文字・波括弧つきはどう使い分けますか?
A. 中身は同じ ID で表記が違うだけです。波括弧つきは Windows レジストリ等、ハイフンなし32桁はURLやファイル名でよく使われます。トグルで貼り替えられます。
Q. UUID や ULID をパスワードやトークン代わりに使えますか?
A. 推奨しません。どちらも「秘密の値」ではなく一意な識別子です。推測されて困る用途には専用のランダムトークンを使ってください。

入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。

RELATED TOOLS

続けて整える

KOINOBORI ECOSYSTEM

私たちが運営するサイト