UUID ジェネレーター
暗号論的に安全な乱数から UUID v4 をまとめて生成します。
UUID v4
5
生成結果0 文字
設計段階からプライバシー重視。 UUID は Web Crypto API でローカルに生成されます。送信も記録もされません。
よくある質問
UUID v4 とは何ですか?
128 ビットの識別子で、そのうち 122 ビットがランダムに生成されます。中央での調整が不要なため、多数のマシンが独立して ID を作る用途に向いています。
これらの UUID を本番環境で使っても大丈夫ですか?
はい。Web Crypto API 由来で、暗号論的に安全な乱数源なので、値は予測できません。
2 つの UUID が衝突することはありますか?
理論上はありますが、実務上はありません。毎秒 10 億個の UUID を 1 世紀生成し続けても、1 回衝突する確率は無視できます。
UUID をデータベースの主キーに使うべきですか?
動作はしますが、ランダムな UUID は挿入位置がばらけるため B-tree インデックスを断片化させます。書き込み量が多い場合は UUID v7 やソート可能な ID 方式を検討してください。
UUID ジェネレーターについて
バージョン 4 の UUID は 128 ビットで、そのうち 122 ビットがランダム、6 ビットが固定のバージョンとバリアントの識別子です。16 進数 32 桁を 8-4-4-4-12 のパターンで表記します。
乱数は crypto.getRandomValues から得ています。これは鍵素材の生成にも使われる暗号論的に安全な乱数源であり、Math.random ではありません。衝突確率は無視できるほど小さく、重複が起こりうるようになるには 10^18 個規模の識別子が必要です。
データベースの列を詰めたいときはハイフンなしを、Microsoft 形式の GUID に合わせたいときは大文字を使ってください。