UUID生成
規格準拠のv4 UUIDを、1件ずつでも一括でも、ワンクリックで生成。
このUUID生成ツールは、ランダムなバージョン4のUUID(GUIDとも呼ばれます)を必要に応じて作ります。1回クリックで単一の識別子を、まとめて生成すればリスト全体をコピーできます。各UUIDは550e8400-e29b-41d4-a716-446655440000のような標準の8-4-4-4-12形式に従います。
UUIDは現代のソフトウェアで主力の識別子です。データベースの主キー、APIのリクエストID、注文やセッションの参照、衝突してはいけないファイル名など。その価値は、中央の登録機関なしに誰でもどこでも1つ作れて、世界中で一意だとほぼ確実にみなせる点にあります。
生成にはブラウザの暗号学的に安全な乱数を使い、すべてお使いの端末内で行われます。作られたIDがサーバーに見られることはありません。
UUIDの生成手順
- 生成をクリックして、新しいバージョン4のUUIDを作ります。
- もっと必要ですか?個数を設定して一括生成します。
- 大文字・小文字などの表記オプションを選びます。
- 単一のUUIDをコピーするか、リスト全体を一度にコピーします。
- 新しい識別子が必要になったら、いつでもまた生成します。
v4の衝突を心配しなくてよい理由
バージョン4のUUIDは122ビットのランダムを含み、約5.3×10^36通りの値があります。1秒あたり約10億個のUUIDを生成しても、たった1件の衝突が50%の確率で起きるまでに約85年かかります。通常のアプリケーションであれば、v4 UUIDを一意として扱うのが標準的な設計です。
正確に言えば、その確率は天文学的に小さいものの、文字どおりのゼロではありません。これは心に留めておく価値のある正直な区別です。実務ではエンジニアはあらゆる場所でこのほぼ確実さに頼っており、それでも一意性チェックを加えるのは、データベースの列が他の理由ですでにそれを強制している場合だけです。
v4形式の組み立て方
UUIDは128ビットで、おなじみの8-4-4-4-12という区切りで32個の16進文字として表されます。バージョン4ではそのほぼすべてのビットがランダムで、バージョンとバリアントを示す小さな固定部分だけがあります。13文字目は必ず4で、17文字目は8・9・a・bのいずれかです。だからこのツールが作るどのUUIDも、同じ位置に4があります。
この固定のマーカーによって、どんなシステムも余分な情報なしに文字列から直接バージョンを読み取れます。それ以外はすべてランダムに引かれるため、v4 UUIDはバージョン1と違って意図的にタイムスタンプ・カウンター・マシン識別子を持ちません。この不在こそ利点です。識別子は、いつどこで作られたかを一切明かしません。
暗号乱数を使いブラウザ内で生成
このUUID生成ツールは、crypto.randomUUID の背後にあるのと同じ種類のランダム性、すなわちブラウザの暗号学的に安全な生成源を使って、各識別子をローカルで作ります。作業がお使いの端末で行われるため、数千件の一括生成も瞬時に現れ、IDの作成にサーバーが関与することは一切ありません。
生成したものは何もアップロード・記録・保存されないため、コピーするまで識別子はあなただけのものです。これは、UUIDが自分のシステムで主キーや参照番号になる場合に役立ちます。外部の記録は存在せず、他のユーザーが同じ値を渡される可能性もありません。
UUIDが適した場面
UUIDは、次の番号を中央の権威に尋ねることなく識別子を作りたいあらゆる場面で輝きます。分散システムは、別々のサービス、オフラインの端末、複数のデータベースがそれぞれ鍵を作っても、後でデータを統合するときに衝突しないよう、UUIDに頼ります。注文の参照番号、セッショントークンの非秘密部分、イベントID、サービス横断でリクエストを追跡する相関IDにも向いています。
データベースの外でも便利です。決して互いを上書きしてはならないファイル名、APIが安全にリクエストを再試行できる冪等性キー、実行のたびに新しい一意の値が必要なテスト用データなど。単なる連番のカウンターが件数を漏らしたり、調整を強いたりする場面ではいつでも、UUIDがその問題を回避します。
表記と日常のオプション
規格はUUIDをハイフン付きの小文字16進で書き、それが保存・共有に最も安全な既定です。一部のMicrosoftツールは大文字で、ときにGUIDとして中括弧で囲んで表示するため、このツールは対象システムが期待するものに合わせて大文字・小文字を切り替えられます。
どの表記を選んでも、比較は大文字小文字を区別せずに扱ってください。同じUUIDが別々の出所からどちらの形でも届き得るからです。まとめて必要なときは、繰り返しクリックするより一括生成してリスト全体をコピーするほうが速く、テーブルや設定ファイルの初期投入に向いています。
UUIDは識別子であって秘密ではない
最も重要な注意点は、UUIDはパスワードではないということです。推測は難しいものの、共有される前提で設計されています。UUIDはURL、ログ、分析、エラーレポートに日常的に現れます。そうした場所に流れ得るものが、ユーザーと保護されたデータのあいだに立つ唯一のものであってはなりません。
ですからUUIDはものに名前を付け参照するために使い、それらを守るには本物の認証と認可を使ってください。推測不可能な秘密が必要なら、代わりに十分な長さの専用ランダムトークンを生成し、あらゆる資格情報と同じようにログやリンクから遠ざけてください。
よくあるUUIDの間違いと回避法
よくある誤りは、UUIDを非効率に保存することです。データベースが、より小さくインデックスも速いネイティブのUUID型や16バイトのバイナリ型を提供しているのに、何百万件も36文字のテキストとして保持してしまうこと。もう1つは、連番の挿入を前提とするシステムでランダムなv4 UUIDをクラスタ化主キーに使うことで、書き込み性能を損ないかねません。順序が重要なら、時刻順のUUIDバリアントが適しています。
正しさの面では、別々の出所の値を比較するときの大文字小文字やハイフンの不一致に注意し、v4 UUIDが作成時刻をエンコードしていると決して仮定しないでください。実際にはしていません。不透明な一意の文字列として扱い、大文字小文字を区別せず比較し、レコードがいつ作られたかは本物のタイムスタンプ列に記録させましょう。
よくある質問
このUUID生成は無料ですか?
はい、無料・無制限です。1件でも数千件でも、アカウントもレート制限もなく生成できます。
UUIDとGUIDの違いは何ですか?
実用上の違いはありません。GUIDは同じ128ビット識別子形式に対するMicrosoftの呼び名で、UUIDが標準的な用語です。ツールやデータベースは両方を同じものとして受け付けます。
バージョン4とはどういう意味ですか?
バージョンはUUIDの作り方を表します。v4はランダムなビットから生成され、タイムスタンプとマシン識別子を埋め込むv1とは異なります。いつどこで作られたかを一切明かさないため、v4がよく選ばれます。
生成した2つのUUIDが同じになることはありますか?
理論上はあり得ますが、実際にはありません。122ビットのランダムがあるため衝突の確率は極めて小さく、どこのソフトウェアもv4 UUIDを確認なしに一意として扱います。
このUUIDは本番データベースで安全ですか?
はい。暗号乱数で生成された標準のv4 UUIDで、Pythonのuuid4やJavaScriptのcrypto.randomUUIDが作るものと同じです。
UUIDは大文字と小文字どちらが良いですか?
規格は小文字を出力し、それを推奨しますが、比較は大文字小文字を区別せず行うべきです。一部のMicrosoftツールは大文字で表示します。表記オプションで、システムが求める方を選んでください。
生成したUUIDはどこかに記録されますか?
いいえ。ブラウザ内で作られ、コピーするまでページ上にしか存在しません。サーバーが見ることはないので、漏れたり再利用されたりしません。