開発者

UUIDジェネレーター

データベースキー、APIトークン、テストフィクスチャにUUIDが必要ですか?v4 UUIDを1つずつまたは一括で — 一度に最大100個 — 生成し、クリップボードに直接コピー。

このツールは役に立ちましたか?

UUIDジェネレーターとは?

UUID(汎用一意識別子)ジェネレーターはランダムなバージョン4 UUIDを作成します — 世界中のすべてのシステムで実質的に一意な128ビットの識別子です。各UUIDは標準フォーマット8-4-4-4-12(ハイフン付き36文字)に従い、読み取り、保存、送信が容易です。バージョン桁(位置13)は常に4、バリアント桁(位置17)は常に8、9、A、またはBであり、RFC 4122への完全な準拠を保証します。データベースプライマリキー、APIトークン、セッションID、テストフィクスチャ、または中央機関との協調なしに保証された一意の識別子を必要とするすべてのアプリケーションに対して、一度に1〜100個のUUIDを生成します。

この計算機を使用するタイミング

  • 分散システムのデータベースプライマリキーに一意の識別子が必要
  • 中央機関なしでグローバルに一意である必要があるAPIリソース識別子を作成している
  • ユニットテストまたは統合テストに一意のIDを持つテストフィクスチャが必要
  • 一意のトークン生成が必要なセッション管理システムを構築している
  • データマイグレーションまたはインポートのために複数の一意の識別子を一括で生成する必要がある
  • すでに持っているUUIDが有効で適切にフォーマットされているか確認したい

手順:

  1. 生成するUUIDの数を選択してください(1-100)。
  2. UUID生成ボタンをクリックしてください。
  3. 個々のUUIDをコピーするか、すべてコピーを使用してください。
  4. 生成時に自動コピーするには自動コピーを切り替えてください。

計算式

UUID v4フォーマット: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx ここでxはランダムな16進数、yは8、9、A、またはBのいずれか(RFC 4122バリアント)。 合計組み合わせ: ~5.3 × 10^36

ユースケース

  • 分散システム用のデータベースプライマリキー
  • APIリソース識別子
  • ユーザーセッショントークン
  • 注文およびトランザクションID

主な利点

  • ワンクリックで1〜100個のUUIDを即座に生成
  • 個別またはバッチUUIDをワンクリックでクリップボードにコピー
  • シームレスな開発ワークフロー統合のための自動コピーモード
  • 完全無料 — サインアップ、アカウント、サーバー接続不要
  • クライアント側生成によりUUIDがブラウザを出ることを保証
  • ユニバーサル互換フォーマット(RFC 4122)はすべての主要データベースとフレームワークで動作

プロのヒント

  • 時系列ソートが不要な汎用一意識別子にはUUID v4を使用
  • ストレージ容量を50%節約しインデックスパフォーマンスを向上させるため、データベースではUUIDを文字列ではなくbinary(16)として保存
  • 時系列順序の一意のIDが必要な場合はUUID v7またはULIDを使用
  • セキュリティ上重要なアプリケーションではクライアント側でUUIDを生成しない — 代わりにサーバー側CSPRNGを使用
  • auto-increment IDからの移行時は、中断を避けるために既存の整数カラムの横にUUIDカラムを追加

避けるべきよくある間違い

  • 分散システムでノードが独立してIDを生成する场合に、UUIDの代わりにauto-increment IDを使用
  • UUIDが時間でソート可能だと仮定 — 標準v4 UUIDはランダム;時系列順序の一意のIDにはUUID v7またはULIDを使用
  • UUIDを16バイトバイナリではなく36文字文字列として保存し、55%の追加ストレージを浪費しインデックスパフォーマンスを劣化させる
  • セキュアなUUID生成にクライアント側Math.random()に依存 — 暗号学的に安全ではない

重要な用語の説明

UUID: 汎用一意識別子 — RFC 4122で標準化された128ビットの識別子
UUID v4: ランダムなバージョン4 UUID — 最も一般的に使用されるバージョン、122個のランダムビットから生成
GUID: グローバル一意識別子 — UUID標準のMicrosoftの実装、機能的に同一
RFC 4122: UUIDフォーマット、バージョン、バリアントフィールド構造を定義するIETF標準化ドキュメント
CSPRNG: 暗号論的に安全な擬似乱数生成器 — セキュリティコンテキストでのUUID生成に必要

関連コンセプト

  • バージョン4 UUID: 完全にランダムビットから生成されたUUID、バージョンフィールドは0100(4)に設定され、バリアントビットはRFC 4122に従って設定
  • GUID(Globally Unique Identifier): UUID標準のMicrosoftの実装、UUID v4と機能的に同一
  • RFC 4122: UUIDフォーマット、バージョン、およびUUID構造のバリアントフィールドを定義する標準化ドキュメント
  • 衝突: 2つの独立して生成されたUUIDが同一になる極めてまれなイベント — v4 UUIDの場合、確率は約5.3×10^36分の1
  • UUID v7: 最上位ビットにUnixタイムスタンプをエンコードする新しいUUIDバージョン、一意でありながら時間順序付きでソート可能

例

生成されたUUID: 550e8400-e29b-41d4-a716-446655440000 — 位置13に4がありバージョン4を示し、位置17に「a」がありRFC 4122バリアントを示す標準的なv4 UUID。

結果の解釈方法

ジェネレーターはバージョン4 UUIDを作成します。これは標準の16進フォーマット8-4-4-4-12(ハイフンを含む36文字)に従う128ビットのランダム識別子です。バージョン4は、バージョンおよびバリアントインジケーターを除くすべてのビットがランダムであることを意味し、システム間の調整なしで可能な限り最高の一意性を提供します。 生成されたUUIDには特定の構造マーカーがあります:13文字目は常に4(バージョン4を示し)、17文字目は常に8、9、A、またはB(RFC 4122バリアントを示します)。これらのマーカーはv4 UUIDを他のバージョンと区別し、標準への準拠を保証します。 開発中にUUIDを1つずつ生成する必要がある場合は自動コピー機能を使用してください — 各UUIDは生成時に即座にクリップボードにコピーされます。一括操作のためにUUIDのバッチが必要な場合はすべてコピーを使用してください。バッチ生成はサーバー通信なしでブラウザ内で完全に実行されます。

よくある質問

UUIDとは何ですか?
UUID(Universally Unique Identifier)はRFC 4122によって標準化された128ビットの識別子です。バージョン4 UUIDはランダムに生成され、システム間で一意であることが実質的に保証されています。
UUIDはどのくらい一意ですか?
極めて一意です。5.3×10^36の可能なv4 UUIDがあります。衝突確率は非常に低く、100年間毎秒10億個のUUIDを生成しても、衝突リスクはゼロに近いです。
UUIDは何に使用されますか?
UUIDはデータベースのプライマリキー、APIリソース識別子、セッショントークン、トランザクションID、および中央機関なしで一意の識別子が必要なあらゆる場所で使用されます。
UUIDとGUIDの違いは何ですか?
GUID(Globally Unique Identifier)はUUID標準のMicrosoftの実装です。機能的に同一で交換可能です。
UUIDは本当に一意であることが保証されていますか?
どのUUID標準も絶対的な一意性を保証しません — しかしv4 UUIDの衝突確率は非常に天文学的に低く(5.3×10^36分の1)、実質的に不可能と考えられています。参考として、50%の衝突確率に達するには100年間毎秒10億個のUUIDを生成する必要があります。
プライマリキーにはUUIDと自動インクリメント整数のどちらを使うべきですか?
UUIDは分散システムに適しています。調整なしで任意のノードで独立して生成できるためです。整数はよりシンプルで小さく、シーケンシャルな順序が重要な単一データベースアプリケーションに適しています。UUIDはデータ量に関する情報も漏らしません(シーケンシャルIDが5,000の場合、攻撃者に5,000件のレコードがあることがわかります)。
UUIDを時系列でソートできますか?
標準のv4 UUIDはランダムであり、時間でソートできません。UUID v7(新しいライブラリで利用可能)は最上位ビットにタイムスタンプをエンコードし、時間ソート可能にします。時間順序付きの一意のIDが必要な場合は、v4の代替としてUUID v7またはULIDを検討してください。
UUIDを文字列として保存する場合とバイナリとして保存する場合の違いは何ですか?
文字列は36文字(36バイト)を使用しますが、バイナリは16バイトを使用します。バイナリ保存はストレージスペースとインデックスパフォーマンスの両方により効率的です。ほとんどのデータベースはバイナリ変換を自動的に処理するUUID固有の列タイプをサポートしています。MySQLではbinary(16)、PostgreSQLではネイティブuuidタイプを使用してください。
なぜv4 UUIDの13文字目は常に「4」なのですか?
13文字目はUUIDのビット48-51を占め、バージョン番号をエンコードします。バージョン4の場合、これらのビットは0100に設定され、これは16進数の4です。これにより、どのUUIDリーダーもUUIDをバージョン4(ランダム)として識別します。
クライアント側でUUIDを生成するのは安全ですか?
セキュリティ目的でない場合は、はい。セキュリティ上重要なアプリケーション(セッショントークン、APIキー、パスワードリセットトークン)の場合は、サーバー側で暗号的に安全なランダムジェネレーターを使用してください。ブラウザベースのMath.random()は暗号的に安全ではありませんが、最新のブラウザのcrypto.getRandomValues()はほとんどの目的で許容されます。
一度にいくつのUUIDを生成できますか?
このジェネレーターは1バッチあたり最大100個のUUIDをサポートします。より大きなバッチの場合は、ジェネレーターを複数回実行するか、UUIDライブラリを使用してサーバー側スクリプトを使用できます。生成はネットワークリクエストなしで完全にクライアント側で行われるため、バッチはほぼ瞬時に完了します。

さらに多くのツールを見る

ツールライブラリ全体から厳選したおすすめです。