UUIDジェネレーター

UUID v4は8-4-4-4-12のhexで書式される128ビットのランダム識別子です(例: 550e8400-e29b-41d4-a716-446655440000)。中央の割り当てなしで、データベース主キー、相関ID、ファイル名の一意性に使います。利用可能ならcrypto.getRandomValuesでローカル生成。

UUIDの生成方法

1. 生成をクリックします(対応していれば複数生成)。
2. UUIDをクリップボードにコピーします。
3. APIリクエスト、SQL挿入、または設定に貼ります。
4. DBが大文字小文字を区別するなら、一貫して小文字で保存します。

UUIDの用途

データベース主キー

連番intの代わりにUUIDでユーザーを挿入——列挙なしで公開APIに安全です。

リクエスト相関ID

分散トレーシングログ向けに、HTTP呼び出しごとに新しいUUIDのX-Request-IDヘッダーを追加します。

S3オブジェクトキー接頭辞

uploads/{uuid}/photo.jpg は共有バケットのファイル名衝突を避けます。

UUID v4が合うとき

調整なしで分散システムをまたいでIDが一意でなければならないとき。
IDを公に出すとき——ランダムUUIDは推測に強いです。
ID衝突なしでオフラインクライアントからのデータをマージするとき。

バージョンニブル

3つ目のハイフンブロックの後の文字がバージョンを示します——4はランダムUUIDです。コードレビューで形式を素早く検証できます。

よくある質問

UUID v4とv1の違いは?

v4はランダム、v1はタイムスタンプとMAC由来のノードを含みます——プライバシーにはv4が好まれます。

衝突確率は?

実用目的では天文学的に低いです——アプリ規模では誕生日のパラドックスは無関係です。

大文字と小文字は?

RFCは両方を許します——プロジェクトごとに1つの慣例を選びます。Postgresのuuid型は正規化します。

ハイフンは必須ですか?

標準形式はハイフンを含みます。一部のシステムはハイフンなしの32 hex文字を受け付けます。

暗号学的に安全ですか?

利用可能ならブラウザのCSPRNGを使い、Math.randomではありません。