UUID / GUID 一括生成ツール

UUID(汎用一意識別子)をブラウザ上で一括生成します.最大500件まで指定でき,v4(乱数ベース)とv1(時刻・ランダムノード)の両方式に対応しています.開発テスト用のモックデータ作成やID採番に活用してください.

読み込み中...

ZeroToolsのブラウザ内処理とプライバシー

ZeroToolsは,入力内容を端末内で処理するツールを中心に提供しています.各ツールの対応範囲と制限を確認して利用してください.

データの取り扱い・プライバシー方針
第1章

生成方式と初期設定

本ツールは,ソフトウェア開発やデータベース構築で必要となる識別子(UUID)をブラウザ上で自動生成します.初期設定では「v4(完全ランダム)」が選択されており,生成されるUUIDはすべて小文字でハイフンを含む標準的なテキスト形式(plain)として画面に出力されます.

生成処理はJavaScriptを用いてご利用の端末のブラウザ内で実行されるため,入力条件や生成結果の文字列を変換するために外部のAPIサーバーへ通信することはありません.ただし,ウェブサイトを閲覧する際の標準的なHTTPリクエストに伴い,Cookieやアクセスログなどがウェブサーバーへ送信されることはあります.

UUIDの生成には,ブラウザに組み込まれている「Web Crypto API」を使用します.このAPIによる乱数生成機能(crypto.getRandomValues)が利用できない古いブラウザや特定の実行環境では,安全なランダム値を取得できないためエラーメッセージが表示され,生成処理自体が停止します.

画面上の「UUID生成オプション」パネルでは,用途に応じてv4とv1の2つのバージョンを切り替えることが可能です.初期状態のまま「UUIDを新規生成する」ボタンを押すだけで,直ちに10件の新しい識別子が結果パネルに表示され,クリップボードへ一括コピーする準備が整います.

第2章

件数と再生成タイミング

UUIDの生成数は,入力フォームから1件から最大500件まで任意の整数を指定できます.入力欄の下には「1」「5」「10」「50」「100」「500」の6つのプリセットボタンが配置されており,クリックするだけで瞬時に指定件数がフォームへ反映されます.もし500を超える数値や0以下の数値を入力した場合は,自動的に1または500の範囲内に制限され,一度に生成する件数を制限します.

ツール内で新しいUUIDが生成されるタイミングは明確に定義されています.まず,「v4」または「v1」のバージョンを切り替えたとき,そして「生成数」の数値を変更したときに,その条件に従って直ちに新しい識別子のリストが作成されます.また,画面下部の「UUIDを新規生成する」ボタンを意図的にクリックした場合も同様です.

一方で,後述する表示形式や大文字・小文字,ハイフンの有無を切り替える操作では,すでに内部で保持しているリストを再フォーマットするだけであり,識別子そのものを再生成することはありません.この仕様により,一度生成した一連のIDを失うことなく,取り込み先の仕様に合わせて様々なフォーマットを試すことができます.

なお,コピーボタンを押してクリップボードに文字列を保存できた場合のみ「コピー完了」という表示に切り替わります.

第3章

表示形式の切替

生成されたUUIDのリストは,利用するシステムやツールの要件に合わせて,3種類の出力フォーマットから選択できます.標準テキスト(plain)形式では,各UUIDが改行区切りで1行ずつ出力されます.単純なテキストファイルへの貼り付けや,シェルスクリプトの入力データとして扱う場合に適しています.

JSON配列(json)形式を選択すると,生成された文字列群がダブルクォーテーションで囲まれ,角括弧で括られた標準的なJSONの配列として出力されます.APIの開発テストにおいて,リクエストボディのモックデータを構築する際にそのまま利用できます.

CSV形式(csv)を選択した場合は,1行目に「Index,UUID」というヘッダーが付与され,2行目以降に「1,"生成されたUUID"」のように行番号と引用符付きのIDがカンマ区切りで出力されます.Excelやスプレッドシート,データベースのインポート機能でバルク登録を行う際に便利です.

さらに,大文字(UPPERCASE)スイッチを有効にするとアルファベット部分が大文字に変換され,ハイフン有無スイッチをオフにすると区切り文字を除去した32文字の連続した文字列として表示されます.これらの変換処理もすべてブラウザ内のJavaScriptで行われます.

第4章

v4の122乱数ビット

UUID v4は,仕様(RFC 9562)に基づきランダムな値で構成される識別子です.全体の128ビットのうち,バージョン番号を示す4ビット(常に「4」)と,バリアントを示す2ビット(本実装では固定値)を除いた,残りの122ビットが純粋な乱数として生成されます.

本ツールでは,この122ビットの乱数成分を生成するために,Web Crypto APIのgetRandomValuesメソッドを使用して16バイトのバイト配列を取得しています.

取得した16バイトの配列に対し,7バイト目と9バイト目に特定のビット演算を行うことでバージョンとバリアントの規則を適用し,最終的に16進数の文字列へと変換します.この122ビットの乱数空間は極めて広大であるため,数学的な確率論においてUUIDが衝突(重複)する可能性は天文学的に低くなります.

しかし,本ツールは生成したIDの履歴を永続化するデータベースを備えていないため,生成のたびに既存のデータと突き合わせて重複検査を行う機能は実装されていません.そのため,絶対に重複しないという保証を提供するものではなく,実際のシステム運用において厳密な一意性が求められる場合は,データベース側のユニーク制約などで重複エラーを検知・処理する設計が必要です.

第5章

v1時刻とランダムノード

UUID v1は,生成時のタイムスタンプ(時刻)とクロックシーケンス,およびノード識別子を組み合わせて構成される方式です.本ツールにおけるタイムスタンプは,ブラウザが取得するDate.now()のミリ秒単位の現在時刻を基準としています.仕様が要求する100ナノ秒単位の表現に合わせるため,ミリ秒時刻に定数を加算・乗算して変換し,さらに同じミリ秒内で生成された順序を区別するためのカウンター(tick)を付加します.

このtickは同一ミリ秒内で最大10,000回までカウントアップされ,それを超える要求があった場合はエラーとして処理を停止し,再試行を促します.

ノード識別子については,端末の実際のMACアドレスを取得することはありません.代わりに,初回生成時にWeb Crypto APIを利用して48ビットのランダムなバイト配列を作成し,そのマルチキャストビット(最初のバイトの最下位ビット)を「1」に設定することで,ランダムに生成されたノードIDであることを明示しています.

また,クロックシーケンスは初期状態で14ビットのランダムな値が割り当てられ,端末の時計が過去に戻ったことを検知した場合(現在時刻が前回の生成時刻より古い場合)には,シーケンス番号をインクリメントします.ただし,実測時刻の精度が100ナノ秒になるわけではありません.

これらのノードIDとシーケンス番号は,ページを読み込んでいる間のみJavaScriptのモジュール内で保持され,ブラウザをリロードするとリセットされます.そのため,出力されたv1のUUIDを単純に文字列としてソートしても,システム全体の厳密な生成順序(時系列)を完全に復元できる保証はありません.

第6章

識別子と秘密情報の区別

UUIDは,システム内のリソースを特定するための「一意な識別子」として設計されたものであり,生成しただけでアクセス権限や値の秘密管理が備わるものではありません.特にv1においては,生成された文字列の中にタイムスタンプが含まれているため,いつ生成されたUUIDであるかが容易に解析・逆算できてしまいます.

v4の乱数成分と,認証に必要な値の保管・失効・権限確認は別の仕組みです.本ツールは後者を実装していません.

本ツールは,あくまで開発補助を目的としてブラウザ内で識別子文字列を生成・フォーマットするユーティリティです.入力された数値や設定項目に基づいてJavaScriptが文字列を組み立てる処理を行いますが,生成された値を保護したり,第三者から推測されないように秘匿したりする仕組みはありません.

したがって,「UUIDを知っていること」をアクセス権限の証明とするような設計には使用せず,システムの認証や認可の仕組みは別途設計・検証してください.生成されたリストをJSONやCSVとしてコピーした後は,ご利用の端末のクリップボード管理やデータの取り扱いに従い,適切な用途にのみ活用してください.

よくある質問(FAQ)

A.
取得しません.v1のノードIDにはWeb Crypto APIで生成した48ビットのランダムな値を使用し,マルチキャストビットを設定して実際のMACアドレスと区別しています.
A.
大文字・ハイフン有無・JSON・CSVの各形式へ切り替える操作では,すでに生成済みのUUID表記を再変換して表示します.生成件数やv4/v1の方式を変更した場合,または新規生成ボタンを押した場合のみ新しいUUIDが生成されます.
A.
生成されるUUIDは確率的に重複が非常に起きにくい設計(RFC 9562)ですが,データベースによる既存IDとの重複検査機能は実装していません.実際のシステムに登録する際は,必要に応じて取り込み先で一意性制約の確認を行ってください.
A.
セキュリティ用途での利用は想定していません.UUIDはあくまで識別子であり,推測不可能性や秘密性を保証するものではありません.認証には専用の暗号学的トークンをご利用ください.