UUID v7は先頭の16進12桁にミリ秒単位の48ビットUnixタイムスタンプを持つため、後から作ったIDは文字列として並べても後ろに来ます。まとめて生成し、1つを解析欄に貼り付ければ作成日時を確認できます。
使い方
- バージョンを選びます:v4(ランダム)またはv7(時系列順)。NILとMAXはすべて0・すべてFの特別な値です。
- 個数を選びます:1、5、10、50、100、または1000までの任意の数。
- UUIDをタップするとコピー。「すべてコピー」「.txtで保存」でリスト全体を取得できます。
- 大文字・ハイフンなし・波括弧を切り替えて、コードに合った形式にできます。
- 「解析」にUUIDを貼り付けると、有効かどうか、バージョン、バリアント、v1・v6・v7なら作成日時が分かります。
- UUIDは暗号学的に安全な乱数生成器crypto.getRandomValuesを使い、ブラウザ内で作成されます。送信も保存もされません。
- v4は122ビットがランダムなので、数十億個生成しても衝突の可能性は無視できるほど小さいです。
- v7(RFC 9562)は先頭がミリ秒単位の48ビットUnix時刻なので、新しいIDほど後ろに並び、データベースのインデックスが効率的になります。同じミリ秒内に生成したものも順序が保たれます。
- GUIDは同じ128ビット形式のMicrosoftでの呼び名です。「波括弧」でレジストリ形式の{…}になります。
- 形式のオプションは記憶されますが、生成したUUIDは保存されません。
UUIDとは
UUID(汎用一意識別子)は128ビットの値で、2024年にRFC 4122を置き換えたRFC 9562で定められています。16進数32桁を8-4-4-4-12の5つに区切って書き、ハイフン込みで36文字です。3番目のグループの先頭がバージョン、4番目のグループの先頭(8・9・a・b)が標準のバリアントを表します。GUIDはMicrosoftが同じ形式を呼ぶ名前です。
v4とv7の使い分け
v4は122ビットがランダムです。重複が1つ出る確率が50%になるのは約270京(2.7×10^18)個を作ったときで、安全な乱数を使えば衝突は現実的な問題になりません。このツールはcrypto.getRandomValuesを使います。
v7は先頭にミリ秒単位の48ビットUnixタイムスタンプを持ち、残りがランダムです。新しいIDほど後ろに並ぶため、B-treeインデックスが断片化しにくく挿入も速くなります。データベースの主キーにはv7が向いています。ただし、v7のUUIDからは作成日時が読み取れます。
表記と特殊な値
多くのシステムは小文字・ハイフン付きを使います。APIやファイル名によってはハイフンなし(32文字)が必要で、.NETやWindowsのレジストリでは大文字・波括弧付きで表示されます。NIL UUIDはすべて0、MAX UUIDはすべてfで、どちらもRFC 9562で定義されています。UUIDは識別子であって秘密の値ではないので、パスワードやセッショントークンには使わないでください。
よくある質問
UUIDは本当に重複しませんか?
実用上は重複しません。v4は122ビットがランダムで、毎秒10億個を85年間作り続けてようやく重複が1つ出る確率が約50%になる計算です。前提は良質な乱数で、このツールはブラウザの安全な乱数生成器を使っています。
UUIDとGUIDの違いは?
形式は同じです。GUIDは同じ128ビットの識別子をMicrosoftが呼ぶ名前です。Windowsでは大文字・波括弧付きで表示されることが多く、「波括弧」「大文字」オプションで同じ形にできます。
主キーにはv4とv7のどちらを使うべきですか?
多くの場合はv7です。作成順に並ぶので、新しい行がインデックスの末尾に追加されます。作成日時を外から見られたくない場合はv4を使います。
UUIDのバージョンはどう見分けますか?
13桁目、つまり3番目のグループの先頭を見ます。3f2b8c1e-9d4a-4b7e-… なら4なのでv4です。解析欄に貼り付ければ、バージョン・バリアント・埋め込まれた日時を確認できます。
UUIDは一度に何個まで一括生成できますか?
1回につき最大1000個です。すべてコピーするか、1行に1つずつ書かれた.txtファイルでダウンロードできます。
UUIDを秘密のトークンとして使えますか?
おすすめしません。安全な乱数で作ったv4は推測しにくいものの、本来は識別子でログやURLにも出やすい値です。秘密の値には専用のランダムトークンを使ってください。