使い方
- ランダムなIDにはv4、作成時刻順に並べるIDにはv7を選びます。
- 必要な数(1~1,000)を指定し、大文字・小文字、ハイフンの有無、波括弧の有無などの形式を選びます。
- 各UUIDのボタンで個別にコピーするか、すべてコピーします。または、1行に1つずつUUIDを記載したテキストファイルをダウンロードします。
- 既存のUUIDを調べるには、「UUIDを確認」に貼り付けます。
仕組み
UUID(GUIDとも呼ばれます)は128ビットの識別子で、通常は32桁の16進数を8-4-4-4-12の5つのグループに分けて表記します。3番目のグループの先頭の数字はバージョンを示し、4番目のグループの先頭の数字はバリアントを示します(標準的なUUIDでは8、9、a、b)。形式はRFC 9562で定義されており、2024年にRFC 4122に代わりました。
バージョン4のUUIDはランダムです。このツールは、利用可能な場合はcrypto.randomUUIDを、それ以外の場合はcrypto.getRandomValuesを使用します。どちらも暗号学的に安全で、Math.randomは使用しません。ランダムな122ビットを持つため、v4 UUIDが重複する可能性はごくわずかです。重複が1つ発生する確率が50%になるには、約2.7 × 10^18個を生成する必要があります。
バージョン7のUUIDは、先頭にミリ秒単位の48ビットUnixタイムスタンプがあり、その後にバージョン、12ビットのフィールド、62ビットのランダム値が続きます。時刻が先頭にあるため、v7の値は作成順に並びます。そのため、データベースのインデックスがコンパクトになり、ランダムなv4キーよりも挿入が速くなります。同じミリ秒内に複数のv7 UUIDを作成する場合、このツールはRFC 9562の6.2節に記載された方法に従い、12ビットのフィールドをカウンターとして使用するため、一括生成した値は常に厳密な昇順になります。なお、v7 UUIDからは作成時刻がわかります。
UUIDチェッカーは、ハイフンの有無、大文字・小文字、波括弧の有無、urn:uuid:プレフィックスの有無にかかわらずUUIDを受け付けます。バージョンとバリアントを表示し、特殊なnil UUIDとmax UUIDを認識します。また、バージョン1、6、7では、含まれている作成時刻を表示します。
使用例
新しいテーブルの主キー
0192b3c4-5d6e-7f80-9a1b-2c3d4e5f6a7b のようなテストデータ用のv7 UUIDを100個生成します。作成時刻順に並ぶため、自動採番列と同じように、後から挿入された行ほど大きなキーになります。
Windowsまたは.NETプロジェクト用のGUID
「大文字」と「波括弧」を有効にすると、{3F2504E0-4F89-41D3-9A0C-0305E82C3301} のようなレジストリ形式になります。これはVisual Studioのプロジェクトファイル、COMクラスID、Windowsレジストリで使われる形式です。
ログに記録されたIDを確認
018f6e2c-1a2b-7c3d-8e4f-5a6b7c8d9e0f をチェッカーに貼り付けます。バージョン7と標準のバリアントが表示され、先頭の12桁が2024年5月のタイムスタンプとして解読されます。これにより、レコードの作成時刻がわかります。
よくある質問
UUID v4とv7のどちらを使うべきですか?
公開トークンやファイル名など、IDから情報がわからないようにしたい場合はv4を使います。データベースのキーやイベントIDなど、時刻順に並べることでインデックスのパフォーマンスが向上する場合はv7を使います。どちらもランダムビット数が十分に多いため、衝突は実用上問題になりません。
このUUIDは本当に一意ですか?
既存のUUID一覧との照合はしていませんが、暗号学的に安全な乱数生成器を使っているため、重複の可能性は非常に低く、実際のシステムでは無視できます。v7の値には現在時刻も含まれます。
UUIDとGUIDは同じものですか?
はい。GUID(globally unique identifier)は、同じ128ビット形式に対するMicrosoftの呼び名です。GUIDは大文字と波括弧付きで表示されることが多く、このツールでも切り替えられます。
UUIDをパスワードや秘密のトークンとして使えますか?
v4 UUIDは122ビットのランダム値を持つため推測は困難ですが、UUIDは秘密情報ではなく識別子として設計されており、ログやURLに記録されることもよくあります。APIキーやパスワードリセット用リンクには、専用のランダムトークン生成器を使ってください。
v7のタイムスタンプにはパソコンの時計が使われますか?
はい。デバイスの時計からUTCのミリ秒単位で時刻を取得します。時計がずれていると、UUIDに含まれる時刻もずれますが、一括生成したIDは引き続き昇順になります。
プライバシー
UUIDは、ブラウザーの暗号学的乱数生成器を使って生成されます。サーバーへの送信、保存、ログへの記録は行われないため、生成または確認した値を他者が見ることはありません。