ByteCompress

UUIDジェネレーター

ブラウザで瞬時に暗号的にランダムなVersion 4 UUIDを生成します。RFC 9562に従ったWeb Crypto APIを使用した単体またはバルク生成。

51
FreeClient-sideNo signup

UUID v4は122ビットのランダム性を持ち、約5.3×1036の可能な値があります。1回の衝突の50%の確率を得るには、2.71×1018のUUIDを生成する必要があります。1秒間に10億生成すると、85年かかります。UUID v4はRFC 9562(RFC 4122の後継)で標準化され、現代の分散システムで最も広く展開されている識別子形式です。このジェネレーターは、オペレーティングシステムのCSPRNGに基づくブラウザのcrypto.randomUUID() APIを使用しています。1つのUUIDまたは数百のUUIDを一度に生成できます - サーバー不要、サインアップ不要。

UUIDの生成方法

  1. 生成をクリックして、瞬時に単一のUUIDを作成します。
  2. 数量を入力(例:10、100、1000)し、バルク生成をクリックして複数のUUIDを一度に生成します。
  3. リスト内の任意のUUIDをクリックして個別にコピーするか、すべてコピーを使用して全リストをコピーします。
  4. ターゲットシステムに必要な大文字または小文字の出力形式を選択します。
  5. ダウンロードを使用してテキストファイルとしてエクスポートします。

UUID v4の説明

構造と形式

UUIDは32の16進数文字で、8-4-4-4-12のパターンで構成されています:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx。第三グループの4は固定(バージョン4)です。第四グループの最初の1-2ビットは、バイナリで10として固定されています(RFC 4122バリアント)。残りの122ビットはランダムに生成されます。UUID v4は、すべての主要なクラウドプロバイダー、データベースシステム、ウェブフレームワークでデフォルトの識別子形式として使用されています。

衝突の確率

2122の可能な値(約5.3×1036)を持つため、適切なCSPRNGから重複するUUID v4を生成することは、実際のアプリケーションにおいて統計的に無視できるほどです。実用的な目的では、UUID v4の衝突は不可能と見なされます。

生成されたUUID v4

f47ac10b-58cc-4372-a567-0e02b2c3d479

異なる表現での同じUUID

ハイフン付き:  f47ac10b-58cc-4372-a567-0e02b2c3d479
大文字:   F47AC10B-58CC-4372-A567-0E02B2C3D479
ハイフンなし:  f47ac10b58cc4372a5670e02b2c3d479
URN形式:  urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479

UUIDバージョンの比較

  • v1 - 時間ベースで、生成機のMACアドレスを組み込みます。ハードウェア情報を露出し、連続パターンがあります。セキュリティに敏感な識別子には避けるべきです。
  • v3 / v5 - 名前ベースで決定論的:同じ入力の名前空間 + 名前は常に同じUUIDを生成します。再現可能な識別子に便利です。
  • v4 - 完全にランダム(122ビット)。埋め込まれた情報はなく、連続パターンもありません。アプリケーション生成の識別子として最も広く使用されているタイプです。
  • v7 - 時間順のランダムUUID(RFC 9562)。最初の48ビットはUnixミリ秒タイムスタンプで、v7 UUIDは作成時間でソート可能です。v4よりもデータベースのB-treeインデックス性能が向上します。

一般的な使用例

  • 主キーとしてPostgreSQL(uuid型)、MySQL(VARCHAR(36))、MongoDB
  • 分散システムのIDで、複数のサービスが中央のシーケンスなしで独立してレコードを作成します
  • APIリソース識別子を公開URLで露出(列挙攻撃を可能にする連続整数よりも安全)
  • ファイル名としてアップロードされたアセットの衝突を防ぎます
  • 冪等性キーとしてAPIリクエストの重複処理を防ぎます

識別子ではなく安全なランダムパスワードを生成するには、パスワードジェネレーターを使用してください。データベースでソート可能な時間ベースの識別子を探している場合は、データベースドライバーやORMでUUID v7のサポートを確認してください。

よくある質問

実際にVersion 4 UUIDはどれほどユニークですか?

UUID v4は122ビットのランダム性を持ち、約5.3×1036の可能な値があります。1回の衝突の50%の確率を得るには、2.71×1018のUUIDを生成する必要があります - 1秒間に10億生成すると、約85年かかります。実用的なアプリケーションでは、UUID v4の衝突は不可能と見なされます。

ここで生成されたUUIDは暗号的に安全ですか?

はい。このツールはcrypto.randomUUID()(またはフォールバックとしてcrypto.getRandomValues())を使用しており、どちらもオペレーティングシステムのCSPRNGに基づいています。生成されたUUIDは、セキュリティトークン、セッション識別子、その他のセキュリティに敏感なコンテキストでの使用に適しています。

データベースの主キーとしてUUIDを使用すべきですか、それともオートインクリメント整数を使用すべきですか?

どちらにもトレードオフがあります。UUID v4は、複数のノードが独立してIDを生成する分散システムでうまく機能し、公開URLでのIDを予測不可能にし(列挙攻撃を防ぐ)、データベースのマージを簡素化します。オートインクリメント整数はよりシンプルで、サイズも小さく(4-8バイト対16バイト)、連続挿入のB-treeインデックス性能が向上します。UUID v7は、中間の選択肢を提供します:ランダムなUUIDでありながら時間でソート可能です。

UUIDの形式はどのようなものですか?

UUIDは32の小文字の16進数文字で、8-4-4-4-12のパターンでグループ化されています:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx。ハイフンを含む全体の文字列の長さは36文字です。PostgreSQLはUUIDをネイティブの16バイトバイナリ型として保存し、MySQLとSQLiteは通常36文字の文字列として保存します。

オフラインでUUIDを生成できますか?

はい。このページが読み込まれると、UUID生成は完全にローカルのJavaScriptとブラウザの組み込みcrypto APIを使用して実行されます。生成中にネットワークリクエストは行われません。このツールは初回のページロード後にオフラインで動作します。