メインコンテンツへスキップ
無料

UUID・GUIDをオンラインで無料生成

ランダムなUUID v4や時刻順のUUID v7を、1つずつ、または一度に最大100個まで、ハイフンあり・なしで生成できます。

生成したUUID

    設定

    バージョン

    UUID v4は、暗号論的に安全な乱数を使います。汎用の一意な識別子に最適です。

    数
    ハイフンあり
    大文字

    UUID を確認

    識別子を貼り付けると、有効かどうか、バージョン、v7 の場合は含まれる日時がわかります。

    くわしく知る

    UUID:v4かv7か

    どのバージョンを選ぶ?

    v4は122ビットがランダムなので、URLに入れるトークンのように、何も推測されてはいけないIDの無難な選択です。v7はミリ秒単位のタイムスタンプで始まるので、IDが作成順に並びます。データベースのインデックスがコンパクトに保たれ、挿入も速いまま。主キーに向いているのはそのためです。どちらもRFC 9562に準拠した標準のUUIDです。

    生成のしくみ

    ランダムなビットは、Math.randomではなく、ブラウザの暗号論的な乱数生成器(Web Crypto)から取ります。同じミリ秒の中で作ったv7のIDも値が増えていくので、まとめて作っても順番が保たれます。1つずつでも、一度に最大100個でも、大文字・小文字、ハイフンあり・なしでコピーできます。

    UUIDのしくみ

    UUIDは、ハイフンで区切った5つのグループの32文字の16進数で表されます(8-4-4-4-12)。例:550e8400-e29b-41d4-a716-446655440000。3つ目のグループの最初の文字がバージョン(v4なら4、v7なら7)、4つ目のグループの最初の文字がバリアント(RFC 9562の標準バリアントなら8、9、a、b)を表します。

    全体で128ビット(16バイト)です。v4では、そのうち122ビットがランダムです。v7では、最初の48ビットがミリ秒単位のUnixタイムスタンプ、4ビットがバージョン、2ビットがバリアントで、残りの74ビットがランダムです。ここでは同じミリ秒の中では値を増やしていくので、v7のUUIDのリストは常に作成順に並びます。

    データベースの主キーとしてのUUID

    UUIDを主キーに使うと、いくつもの利点があります。複数のデータを統合しても重複せず、IDを一元的に発行する仕組みも不要で、注文数やユーザー数などのビジネス上の数字が連番から推測されることもなく、データベースに挿入する前にクライアント側でIDを作れます。

    主な欠点は、サイズ(32ビットの整数の4バイトに対して16バイト)と、v4ではランダムに散らばるために、B-treeのインデックスが断片化して挿入が遅くなることです。UUID v7は時刻順なので挿入が順番どおりになり、インデックスにやさしく、断片化の問題を解決します。

    使い方

    UUIDの生成は3ステップ

    1. バージョンを選ぶ

      UUID v4(ランダム:汎用に最適)か、UUID v7(時刻順:データベースのキーに最適)を選びます。

    2. 数と形式を設定する

      生成するUUIDの数(1〜100)と、形式(ハイフンあり・なし、大文字・小文字)を選びます。

    3. 生成してコピー

      「生成」を押してから、「すべてコピー」ですべてのUUIDを一度にクリップボードにコピーします。

    活用ガイド

    UUIDの生成を使いこなすコツ

    UUIDのバージョンの違い

    UUID v1は、タイムスタンプと端末のMACアドレスを組み合わせたものです。一意性は保証されますが、作成者のネットワーク上の識別情報と作成日時がわかってしまうため、プライバシーの懸念があります。最近のアプリケーションではほとんど使われていません。

    UUID v4は、いちばん広く使われているバージョンです。122ビット(バージョンとバリアントの6ビットを除く)はすべて、暗号論的に安全な乱数生成器で作られます。シンプルでプライバシーも守られ、重複の確率も天文学的に低いのが特長です。

    ランダムなv4、時刻順のv7

    プライバシーと安全性

    AwesomeToolkitは、UUIDをすべてブラウザ内で生成します。v4では、使える場合はcrypto.randomUUID()を、使えない場合はcrypto.getRandomValues()を使います。v7では、Date.now()とcrypto.getRandomValues()を組み合わせています。

    識別子は端末の中で生成され、記録されたり使い回されたりすることはありません。一度読み込めば、オフラインでも使えます。

    ブラウザ内で生成
    よくある質問

    UUID生成のよくある質問

    UUID・GUID生成ツールについて知っておきたいこと