本文へ移動
QKQuickKitEN
識別子・認証LOCALブラウザ内で処理

UUID ジェネレーター

ランダムなバージョン 4 (RFC 9562) UUID をブラウザ内で生成します。書式オプションと一括生成に対応。

入力と主要な処理をブラウザ内で行い、その入力内容をQuickKitサーバーへ送信しない設計です。

UUID

仕組みと使い方

バージョン 4 UUID は 128 ビットで、122 ビットの乱数に、固定の 4 ビットのバージョン(0100)と 2 ビットのバリアント(10)を加えたものです(RFC 9562 §5.4)。文字列 xxxxxxxx-xxxx-4xxx-Nxxx-xxxxxxxxxxxx では、3 番目のグループ先頭の 4 がバージョンで、バリアントにより N は 8、9、a、b のいずれかになります。乱数には RFC 9562 §6.9 が推奨するとおり、ブラウザの暗号乱数(crypto.getRandomValues)を使います。UUID はローカルで生成され、どこにも送信されません。

重複する確率: 乱数が 122 ビットなので、n 個の UUID のうちどれか 2 つが一致する確率はおよそ n² / 2^123 です(誕生日問題の近似。RFC の数値ではなく QuickKit が計算したもの)。10 億個でも約 9.4 × 10^-20 です。実際の重複は、この計算よりも、乱数源の不具合や値のコピー、プログラムの誤りから生じます。一意性に依存するデータベースでは、一意制約などで重複を防いでください。

UUID は識別子であり、秘密の値ではありません。RFC 9562 §8 は、UUID が推測しにくいと仮定せず、値を持っているだけでアクセスできる用途(security capability)に使わないよう求めています。パスワードやアクセストークンには専用のジェネレーターを使ってください。

書式: RFC 9562 §4 では 16 進数字は大文字・小文字・混在のいずれでもよく、このツールは「大文字」を選ばない限り小文字で出力します。「ハイフンを含める」をオフにすると 32 桁の形式、urn:uuid: を付けると URN 形式(urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6)になり、URN 形式では波括弧を選んでいても付けません。URN にするときは「ハイフンを含める」をオンのままにしてください。オフにすると現在は urn:uuid: の後に 32 桁がそのまま続き、RFC 9562 §4 が URN に求めるハイフン区切りの構文になりません。波括弧は GUID で一部のソフトウェアが使う慣習で、RFC 9562 の書式ではありません。nil UUID(128 ビットすべて 0、§5.9)は「値がない」ことを表し、乱数ではありません。一度に生成できるのは 512 個までです。既存の UUID のバージョンとバリアントを確かめるには UUID インスペクターを使ってください。