開発ツール

UUID生成ツール【無料・登録不要】v4・v7を最大1000個まとめて作成|形式チェック・生成時刻の確認も

UUID生成ツール【無料・登録不要】v4・v7を最大1000個まとめて作成|形式チェック・生成時刻の確認も
engblog-poster

UUID(v4・v7)をブラウザだけで生成できる無料ツールです。会員登録は不要です。最大 1000 個までまとめて作れて、大文字・ハイフンなし・{ } 付きなどの形にも切り替えられます。手元の UUID がどのバージョンか・正しい形式かのチェックや、v7 に埋め込まれた生成時刻(日本時間)の確認もできます。

UUID は、ブラウザに標準で入っている安全な乱数(Web Crypto)を使ってお使いのブラウザの中だけで生成しています。入力した値や生成した値がサーバーに送信されることはありません。

UUID を生成する

生成の設定
表示の形式

UUID の形式をチェックする

UUID はお使いのブラウザ内で、安全な乱数(Web Crypto)を使って生成しています。入力した値や生成した値をサーバーへ送信したり、保存したりすることは一切ありません。

使い方

UUID を生成する

  1. 「バージョン」で「v4(ランダム)」か「v7(時刻順に並ぶ)」を選びます。迷ったら v4 で問題ありません(違いは後で説明します)。
  2. 「個数」に作りたい数(1〜1000)を入力します。
  3. 「生成する」を押すと、「生成結果」の欄に 1 行に 1 つずつ UUID が表示されます。
  4. 「すべてコピー」を押すと、表示されている UUID をまとめてコピーできます。

ページを開いたときにも、v4 の UUID を 1 つ作って表示します。v7 をまとめて作ると、同じミリ秒の中で作られたものも含めて、生成した順に並べるとそのまま文字列としても昇順になります。

表示の形式を切り替える

「表示の形式」を変えると、生成済みの UUID の表示がすぐに切り替わります(値そのものは変わりません)。

設定表示の例使う場面
標準(初期設定)017f22e2-79b0-7cc3-98c4-dc0c0c07398fほとんどの場面。Python や PowerShell の出力と同じ形
大文字にする017F22E2-79B0-7CC3-98C4-DC0C0C07398F大文字で書くことが決まっているシステムに合わせるとき
ハイフンを付けない017f22e279b07cc398c4dc0c0c07398fファイル名や、32 文字の固定長で保存する列に入れるとき
{ } で囲む{017f22e2-79b0-7cc3-98c4-dc0c0c07398f}Windows のレジストリ(HKEY_CLASSES_ROOT\CLSID の下のキー名など)のように、GUID を { } 付きで書く場面
urn:uuid: を付けるurn:uuid:017f22e2-79b0-7cc3-98c4-dc0c0c07398fUUID を URN(名前を表す URI の一種)として書くとき。RFC 9562 に例が載っている形

UUID の形式をチェックする

  1. 「UUID の形式をチェックする」の入力欄に、調べたい UUID を貼り付けます。1 行に 1 つずつ、100 行まで一度に調べられます。
  2. 入力と同時に、UUID ごとに「判定」「標準の形」「バリアント」「バージョン」が表示されます。
  3. v7・v1・v6 の UUID なら、中に入っている生成時刻も日本時間で表示されます。

大文字・小文字、ハイフンの有無、{ } 囲み、「urn:uuid:」付きのどの形でもチェックできます。「サンプルを入れる」を押すと、UUID の仕様書(RFC 9562)の付録に載っている例が入ります。たとえば v7 の例「017F22E2-79B0-7CC3-98C4-DC0C0C07398F」の生成時刻は「2022-02-23 04:22:22.000(日本時間)」と表示されます。仕様書にはこの時刻が米国東部時間(GMT-05:00)の「2022 年 2 月 22 日 午後 2 時 22 分 22 秒」と書かれていて、日本時間に直すと同じ時刻です。

生成時刻は、お使いのパソコンのタイムゾーンの設定に関係なく、日本時間(UTC+9)で表示します。「生成結果をチェックする」を押すと、上で作った UUID をそのままチェックできます。

UUIDとは?

UUID(Universally Unique IDentifier)は、世界中で重ならないことを目指して作る 128 ビットの ID です。データベースの主キー、ファイル名、API でやり取りするデータの ID などに使われます。連番の ID と違って、別々のサーバーやパソコンで相談せずに作っても、実用上は重なりません。

文字で書くときは、128 ビットを 16 進数 32 文字で表し、「8-4-4-4-12」文字の位置にハイフンを入れた 36 文字の形にするのが一般的です。仕様は、2024 年に公開された RFC 9562 で決められています(それまでの RFC 4122 を置き換えたものです)。Microsoft の製品では GUID(Globally Unique IDentifier)と呼ばれますが、同じものだと考えてかまいません。

バージョンとバリアントの見分け方

UUID の中には、どの作り方で作られたかを表す「バージョン」と、どの仕様に従った UUID かを表す「バリアント」が入っています。ハイフン付きの形なら、次の位置の文字を見るとわかります。

  • バージョン:3 つ目のかたまりの 1 文字目(例:017f22e2-79b0-7cc3-98c4-… なら v7)
  • バリアント:4 つ目のかたまりの 1 文字目。8・9・a・b なら RFC 9562 の UUID(例:…-7cc3-98c4-…)
バージョン作り方
v1時刻(1582 年 10 月 15 日からの 100 ナノ秒単位)+ノード ID(MAC アドレスなど)
v2DCE セキュリティ用(中身の決まりは RFC 9562 の範囲外)
v3名前(URL など)から MD5 で計算。同じ名前からは同じ UUID になる
v4ランダム(122 ビットが乱数)
v5名前から SHA-1 で計算。v3 の SHA-1 版
v6v1 の時刻の並びを入れ替え、時刻順に並ぶようにしたもの
v7Unix 時間(ミリ秒)+乱数。時刻順に並ぶ
v8独自の作り方のための形式(中身は作る側が決める)

このほかに、すべてのビットが 0 の「Nil UUID」(00000000-0000-0000-0000-000000000000)と、すべてのビットが 1 の「Max UUID」(ffffffff-ffff-ffff-ffff-ffffffffffff)という特別な値も決められています。このツールの形式チェックは、これらも判定します。

v4 と v7 の違いと使い分け

新しく UUID を使うときに選ぶのは、ほとんどの場合 v4 か v7 です。どちらも作るのに特別な情報はいらず、v4 は全体がランダム、v7 は先頭 48 ビットが時刻(1970 年 1 月 1 日からのミリ秒)で残りがランダムです。

v4v7
中身122 ビットの乱数48 ビットのミリ秒の時刻+74 ビットの乱数など
並べ替えたときの順番ばらばら作った順(時刻順)になる
作った時刻がわかるかわからないわかる(このツールでも確認できる)
データベースの主キー使えるが、データが増えるとインデックスの効率が落ちやすい向いている
標準で作れる環境ブラウザ、Python、PowerShell などほとんどの環境Python 3.14 以降、.NET 9 以降など新しい環境

データベースの主キーには v7 が向いている

データベースは、主キーの順に並べた索引(インデックス)を持っています。v4 のようにランダムな値を主キーにすると、新しい行が索引のあちこちに入るため、データが増えるほど書き込みの効率が落ちやすくなります。RFC 9562 でも、v4 のように時刻順でない UUID はデータベースのインデックスの局所性が悪い(新しいデータが近くにまとまらない)と書かれています。v7 は作った順に値が大きくなるので、連番の ID に近い形で索引の末尾に追加されていきます。

作った時刻を知られたくないものには v4

v7 には作った時刻がそのまま入っているので、UUID を見れば誰でも生成時刻がわかります(このツールの形式チェックで表示できるのと同じです)。会員登録の日時のように、外に見せる ID から時刻を知られたくない場合は v4 を使いましょう。

また、RFC 9562 には「UUID が推測されにくいと思い込んではいけない」「UUID をアクセス権の証明(それを知っていれば操作できる、というもの)に使ってはいけない」という注意も書かれています。パスワード再設定用の URL に入れるトークンなど、推測されると困る値には、UUID ではなく十分な長さの専用の乱数を使ってください。

同じミリ秒の中で作った v7 の順番

v7 の時刻はミリ秒単位なので、1 ミリ秒の間に何個も作ると、時刻の部分が同じになります。そのままでは残りの乱数の大小で順番が決まり、作った順に並ばないことがあります。RFC 9562 では、これを防ぐ方法をいくつか紹介しています。このツールは、そのうちの「Monotonic Random」という方法を使い、同じミリ秒の中では前の UUID の乱数部分に 1 以上のランダムな数を足して次の UUID を作ります。これで、作った順に必ず大きくなり、しかも次の値を推測しにくくなります。

コマンドやプログラムで UUID を作る方法

PowerShell(Windows)

Windows に最初から入っている PowerShell で、次のコマンドを実行すると v4 の UUID が 1 つ表示されます。

[guid]::NewGuid().ToString()

「.ToString()」を付けずに [guid]::NewGuid() や New-Guid だけを実行すると、「Guid」という見出しの下に値が表に表示されます。ハイフンなしにしたいときは「.ToString(“N”)」、{ } で囲みたいときは「.ToString(“B”)」にします。

[guid]::NewGuid().ToString("N")

v7 を作る [guid]::CreateVersion7() は、.NET 9 で追加された機能です。Windows に最初から入っている Windows PowerShell 5.1(.NET Framework で動く)で実行すると「CreateVersion7 という名前のメソッドがない」というエラーになることを確認しました。Microsoft の公式ドキュメントによると、.NET 9 で動く PowerShell 7.5 以降なら使えるはずですが、この記事では PowerShell 7.5 以降での動作は確認できていません。

Python

Python の標準ライブラリの uuid モジュールで作れます。Windows の場合は、コマンドプロンプトか PowerShell で次のように実行します(py は Windows 用の Python ランチャーです。Mac・Linux では python3 に置き換えてください)。

py -c "import uuid; print(uuid.uuid4())"

Python 3.12 以降なら、次のようにモジュールを直接実行しても v4 の UUID が表示されます。

py -m uuid

v7 を作る uuid.uuid7() は Python 3.14 で追加されました。Python 3.12 で uuid.uuid7() を呼ぶと「AttributeError: module ‘uuid’ has no attribute ‘uuid7’」というエラーになることを確認しています(3.14 以降での実行は、この記事では確認できていません)。Python 3.14 未満で v7 が必要なときは、このツールで作るか、外部のライブラリを使います。

JavaScript(ブラウザ)

ブラウザの JavaScript では、crypto.randomUUID() で v4 の UUID を作れます。ブラウザの開発者ツール(F12 キー)の「コンソール」に入力して Enter キーを押すと、UUID が表示されます。安全のため https のページなど(安全なコンテキスト)でしか使えないことがある点に注意してください。乱数を使う関数 Math.random() で UUID を自作すると、値を予測されるおそれがあるので使わないでください。このツールも Math.random() は使っていません。

crypto.randomUUID()

よくある質問

UUID が重複することはありますか?

理論上はありえますが、実用上は心配いりません。v4 は 122 ビットが乱数なので、約 5.3 × 1036 通りあります。計算すると、v4 を約 103 兆個作っても、その中に同じものが 1 組でも含まれる確率は 10 億分の 1 程度です。ただし、これは安全な乱数を使った場合の話です。乱数の質が悪いプログラムで作ると、重複しやすくなります。

大文字と小文字、どちらで書くのが正しいですか?

RFC 9562 では、大文字・小文字・混在のどれでもよいとされていて、どれも同じ値を表します。Python や PowerShell の標準の出力は小文字です。ただし、データベースなどで UUID を文字列として保存すると、大文字と小文字が別の値として扱われることがあります。1 つのシステムの中では、どちらかにそろえておきましょう。

UUID と GUID は違うものですか?

GUID は Microsoft が使っている呼び名で、中身は同じ 128 ビットの ID です。PowerShell の [guid]::NewGuid() で作られる値も、このツールの形式チェックにかけると v4 と判定されます。

v7 の生成時刻が少し未来になっていることがあるのはなぜですか?

このツールでは、同じミリ秒の中で大量に作ったときに乱数部分を使い切った場合や、パソコンの時計が巻き戻った場合に、順番を守るため時刻を前回の値より後ろに保ちます(RFC 9562 で認められている方法です)。そのため、まれに実際の時刻より 1 ミリ秒程度進んだ時刻が入ることがあります。

入力したデータは保存されませんか?

保存されません。UUID の生成も形式チェックも、すべてお使いのブラウザの中で行っています。生成した UUID やチェックのために貼り付けた値をサーバーに送信したり、ブラウザに保存したりすることはありません。ページを閉じると消えます。

関連する記事・ツール

ABOUT ME
hr
hr
エンジニアとして働いている hr です。仕事や資格勉強で「こんなツールがあれば」と感じたものを、無料Webツールと解説記事にして発信しています。
記事URLをコピーしました