UUID生成・ショートUUID変換

UUID(v4・v7)をまとめて生成し、Base58・Base62・Base64URL などの短い表記(ショートUUID)にも変換します。UUID とショートUUID の相互変換、バージョンの判定、v7 に含まれる作成日時の読み取りもできます。生成も変換も、すべてブラウザの中で行います。

UUID を生成する

まとめてコピー

UUID ⇔ ショートUUID を変換・解析する

このツールでできること

UUID(Universally Unique Identifier)は、550e8400-e29b-41d4-a716-446655440000 のような 128 ビットの識別子です。中央で番号を管理しなくても、どこで作っても実質的に重ならないため、データベースの主キー、API のリクエスト ID、ファイル名、テストデータなどに広く使われています。このツールは、ランダムな v4 と、作成時刻の順に並ぶ v7 を最大 10,000 個まで一度に生成し、ハイフンなし・大文字などの表記や、JSON の配列・SQL の IN 句の形でまとめてコピーできます。

36 文字の UUID は URL やファイル名に使うには長いので、同じ 128 ビットの値を Base58 や Base62 で 22 文字に縮めた「ショートUUID」もよく使われます。生成と同時にショートUUID を表示できるほか、手元の UUID とショートUUID を相互に変換したり、ログに出てきた UUID のバージョンや、v7・v1 に埋め込まれた作成日時を読み取ったりできます。

使い方

  1. 「UUID を生成する」で v4 か v7 を選び、個数と表記を決めて「生成する」を押します。ショートUUID も欲しいときは、その種類を選んでおきます。
  2. 1つだけ使うなら、各行の「コピー」を押します。まとめて使うときは、コピーする値と並べ方(1行に1つ・JSON の配列・SQL の IN 句など)を選んで「すべてコピー」を押します。
  3. 変換するときは、下の欄に UUID かショートUUID を貼り付けて、変換先を選びます。複数行もまとめて変換できます。
  4. 1行目の値については、バージョン・バリアント・作成日時と、すべての表記の一覧がその下に出ます。ショートUUID の種類が分かっているなら「ショートUUID の種類(入力)」で指定すると確実です。

知っておくと便利なこと

v4 と v7 の違い

v4 は 128 ビットのうち 122 ビットが乱数で、値から何も読み取れません。v7 は 2024 年 5 月の RFC 9562 で定められた新しい形式で、先頭 48 ビットが Unix 時刻(ミリ秒)、残りが乱数です。作った順に並ぶので、データベースの主キーにすると B-tree インデックスの末尾に追記される形になり、v4 のようにページ分割が散らばりにくくなります。その代わり、値から作成日時が誰にでも分かるので、作成時刻を知られたくない ID には v4 を使います。このツールの v7 は、同じミリ秒の中でまとめて作ったときも順番が崩れないよう、乱数部分を前の値より大きくしています。

重なる心配はほぼない

v4 で 2 つ以上が重なる確率が 50% になるのは、およそ 2.7×1018 個(毎秒 10 億個を約 86 年)作ったときです。ただし、それは乱数が正しく作られている場合の話です。このツールは暗号用の乱数(crypto.getRandomValues)を使っています。

ショートUUID の種類と長さ

種類文字数使う文字・特徴
Base58(Bitcoin式)220・O・I・l を除いた英数字。見間違えにくい
Base58(Flickr式)22同じ 58 文字で小文字が先。npm の short-uuid の既定
shortuuid(Python)22さらに 1 を除いた 57 文字
Base62220-9・A-Z・a-z。記号なし
Base64URL22英数字と - _。バイト列をそのまま変換
Base3625数字と小文字だけ。大文字小文字を区別しない場所向け
Base32(Crockford)26I・L・O・U を除く。読み上げ・手入力向け

Base58・Base62・Base64URL は大文字と小文字を区別します。大文字小文字を区別しないデータベースの照合順序や、Windows・macOS の既定のファイル名に使うと別の値が同じとみなされるおそれがあるので、その場合は Base36 か Base32 を選びます。また、同じ 22 文字でも種類が違えば別の UUID に戻るため、ショートUUID を使うときはシステム内で 1 種類に決めておくことが大切です。

よくある質問

GUID と UUID は違うものですか?
同じものです。GUID は Microsoft での呼び名で、表記も同じです。ただし .NET の Guid.ToByteArray() は先頭 3 つの区切りをリトルエンディアンで並べるため、バイト列にすると順番が変わります。解析の欄に .NET のバイト順も表示しています。
大文字と小文字、どちらで書くべきですか?
RFC 9562 では、出力は小文字にし、入力では大文字も受け付けることを勧めています。比べるときは大文字小文字を区別しないのが原則ですが、文字列のまま比較するプログラムもあるので、システム内ではどちらかにそろえておくと安全です。
プログラムで v7 を作るには?
PostgreSQL 18 の uuidv7()、Python 3.14 の uuid.uuid7() など、標準で対応する環境が増えています。ブラウザの crypto.randomUUID() が作るのは v4 です。
ショートUUID を貼ったのに、違う UUID になりました。
Base58 の Bitcoin 式と Flickr 式のように、同じ文字を使っていて並び順だけが違う種類があり、自動判定では見分けきれないことがあります。候補が複数あるときは解析の欄に一覧を出すので、作ったときの種類を「ショートUUID の種類(入力)」で指定してください。
生成した UUID はどこかに送られますか?
送りません。生成も変換もこのページの中の JavaScript だけで行い、入力した値や生成した値を保存・送信することはありません(表記などの設定だけをブラウザに保存します)。