UUID生成ツール & デコーダー
無料のオンラインUUID生成ツール。v1/v4/v5/v7の全バージョンを即時生成。UUIDのデコード・検証、最大50件の一括生成に対応。登録不要、100%ブラウザ上で動作します。
UUIDとは?
UUID(Universally Unique Identifier:汎用一意識別子)は、RFC 9562(IETF、2024年5月)で標準化された128ビットのグローバルに一意な識別子です。分散システムにおいて、中央の調整機関なしに衝突のないIDを生成するために設計されています。UUIDは現代のソフトウェアで最も広く採用されている識別子フォーマットであり、データベースの主キー、APIリクエストの追跡、セッション管理、マイクロサービスアーキテクチャで使用されています。
UUIDは32桁の16進数で表記され、標準的な8-4-4-4-12フォーマットで記述されます(例:`550e8400-e29b-41d4-a716-446655440000`)。この仕様はIETFが管理しており、RFC 9562は以前のRFC 4122(2005年)を置き換え、UUIDバージョン6、7、8を正式に導入しました。
広く使用されているUUIDには5つのバージョンがあります。バージョン1(v1)は現在のタイムスタンプと生成マシンのMACアドレスをエンコードし、時間と空間の両方で一意性を保証します。バージョン3(v3)とバージョン5(v5)は決定論的で、名前空間と名前をそれぞれMD5またはSHA-1でハッシュ化し、同じ入力からは常に同じUUIDが生成されます。バージョン4(v4)は最も一般的で、122ビットを暗号学的に安全な乱数データで埋め、5.3 × 10³⁶以上の可能な値を提供します(RFC 9562、セクション5.4)。バージョン7(v7)は最新の標準で、RFC 9562セクション5.7に記載されているとおり、「UUID version 7 features a time-ordered value field derived from the widely implemented and well-known Unix Epoch timestamp source」(UUID v7は広く実装され周知のUnixエポックタイムスタンプから導出された時間順の値フィールドを持つ)——48ビットのミリ秒タイムスタンプとランダムデータを組み合わせ、一意かつ生成時間順にソート可能なUUIDを生成します。
UUIDは分散システム、データベース、API、そして中央集権的な調整なしに一意な識別子が必要なあらゆる場面で不可欠です。独立したシステム間でのID衝突のリスクを排除し、マイクロサービス、イベントソーシング、マルチテナントアーキテクチャに最適です。
本ツールはWeb Crypto APIを使用して、すべてのバージョンのUUIDをブラウザ内で完全に生成します。UUIDはサーバーに一切送信されません。サーバーベースの生成ツールとは異なり、データのアップロード、ログ記録、データ保持は一切ありません。本番環境のデータベースキー、API識別子、セキュリティに配慮が必要なアプリケーションに安全にご利用いただけます。また、既存のUUIDをデコード・検証して、バージョン、バリアント、埋め込みデータを確認することもできます。
// Generate a UUID v4 using the Web Crypto API
const uuid = crypto.randomUUID();
console.log(uuid);
// → '550e8400-e29b-41d4-a716-446655440000'
// Manual v4 generation with crypto.getRandomValues()
function generateUUIDv4() {
const bytes = new Uint8Array(16);
crypto.getRandomValues(bytes);
bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4
bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 10
const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
return `${hex.slice(0,8)}-${hex.slice(8,12)}-${hex.slice(12,16)}-${hex.slice(16,20)}-${hex.slice(20)}`;
} 主な機能
UUID v7対応(RFC 9562)
最新のUUID v7フォーマットを生成。Unixタイムスタンプ埋め込みにより、時間順でソート可能なデータベース向け識別子を作成できます。RFC 9562標準に対応した数少ないオンラインツールの一つです。
UUIDデコーダー & バリデーター
任意のUUIDを解析し、バージョン、バリアント、タイムスタンプ(v1/v7)、クロックシーケンス、ノード情報を表示します。文字列が正しいUUID形式かどうかを瞬時に検証できます。
マルチバージョン対応
5つのバージョンのUUIDを生成可能——v1(タイムスタンプベース)、v3(MD5)、v4(ランダム)、v5(SHA-1)、v7(時間順ランダム)——すべてRFC 9562に準拠しています。
一括生成
一度に最大50個のユニークなUUIDを生成できます。各UUIDは完全な暗号学的ランダム性またはバージョン固有の正しいエンコードで独立して生成されます。
複数の出力形式
標準小文字、大文字、ハイフンなし、中括弧 {GUID} 形式でUUIDを出力——お使いのシステムやフレームワークが求める形式に正確に対応します。
暗号学的に安全
Web Crypto API(crypto.getRandomValues())を使用した真の乱数生成——最新のブラウザやセキュリティツールと同じ標準を採用しています。
100%ブラウザベース
すべてのUUIDはブラウザ内でローカルに生成されます。サーバーへのデータ送信は一切なく、生成した識別子は完全にプライベートです。
UUIDバージョン比較
用途に合わせて最適なUUIDバージョンを選択してください。
| バージョン | ベース | ソート可能 | プライバシー | 最適な用途 |
|---|---|---|---|---|
| v1 | タイムスタンプ + MACアドレス | 作成時間順 | MACと時間が露出 | 時間ベースの順序付けが必要なレガシーシステム |
| v4 | 122ビット暗号学的乱数 | 不可 | 完全匿名 | 汎用——最も広く使用されるバージョン |
| v5 | SHA-1ハッシュ(名前空間 + 名前) | 不可 | 決定論的、再現可能 | 既知の入力から一貫したIDを生成(URL、DNS) |
| v7 | Unixタイムスタンプ(ミリ秒)+ 乱数 | 作成時間順 | 作成時間のみ露出 | モダンなデータベース——ソート可能、インデックスに最適(RFC 9562) |
UUID vs その他のIDフォーマット
ULID
26文字、Crockford Base32UUID v7と同様に辞書順でソート可能ですが、Crockford Base32エンコードを使用します(26文字 vs 36文字)。UUID v7はIETF標準化された代替手段として、より広範なツールサポートを提供します。
nanoid
21文字、URLセーフ文字セットより短くURLセーフで、コンパクトさが重要な場合に最適です。正式な標準ではないため、UUIDが持つネイティブなデータベース型やクロスプラットフォームライブラリのサポートがありません。
CUID2
可変長、英数字水平スケーリング向けに設計され、衝突耐性を備えています。UUIDより採用率が低く、ネイティブなデータベースサポートがありません。標準化された時間順IDにはUUID v7をご検討ください。
UUIDバージョンの例
UUID v4(ランダム)
550e8400-e29b-41d4-a716-446655440000
最もよく使用されるバージョンです。122ビットの暗号学的乱数により5.3 x 10^36以上の候補値を提供し、調整なしに一意性が必要なほぼすべてのユースケースに適しています。
UUID v7(時間順)
01906b5e-4a3e-7234-8f56-b8c12d4e5678
48ビットのミリ秒単位Unixタイムスタンプとランダムデータを組み合わせています。UUIDは時系列でソートされるため、インデックスの局所性が重要なデータベース主キーに最適です。新規プロジェクトではv1やv4よりもv7の使用が推奨されます。
UUID v1(タイムスタンプベース)
6ba7b810-9dad-11d1-80b4-00c04fd430c8
60ビットのタイムスタンプと生成マシンの48ビットMACアドレスをエンコードします。時間と空間の両方で一意性を保証しますが、ハードウェアの身元情報が漏洩する可能性があります。RFC 9562でv6/v7に置き換えられました。
UUID v5(SHA-1名前ベース)
886313e1-3b8a-5372-9b90-0c9aee199e5d
DNS名前空間と名前 'python.org' をSHA-1でハッシュ化して生成された決定論的UUIDです。同じ名前空間と名前からは常に同じUUIDが生成されるため、v5は再現可能な識別子に最適です。
使い方
- 1
UUIDバージョンを選択
v1(タイムスタンプベース)、v3(MD5名前ベース)、v4(ランダム)、v5(SHA-1名前ベース)、v7(時間順ランダム)から選択します。各バージョンには異なる用途があり、v4が汎用的に最もよく使われます。
- 2
オプションを設定
v3およびv5では、名前空間(DNS、URL、OID、X.500、またはカスタム)を選択し、ハッシュ化する名前を入力します。生成数を1〜50で設定し、出力形式を選択します:標準小文字、大文字、ハイフンなし、または中括弧 {GUID}。
- 3
UUIDを生成
「UUID生成」ボタンをクリックします。各UUIDはWeb Crypto API(crypto.getRandomValues())を使用して暗号学的に安全に生成されます。バージョン固有のフィールド(v1/v7のタイムスタンプ、v3/v5のハッシュ値)は正しくエンコードされます。
- 4
コピーして使用
各UUIDの横にある「コピー」ボタンでクリップボードにコピーするか、「すべてコピー」で生成されたすべてのUUIDを一括コピーできます。「デコード」タブに切り替えると、既存のUUIDのバージョン、バリアント、タイムスタンプなどの埋め込み情報を分析できます。
主なユースケース
- データベース主キー
- データベースノード間の調整なしに、UUID v4またはv7をユニークな主キーとして使用できます。UUID v7は時間順の特性によりB-treeインデックスのパフォーマンスが向上するため、特に適しています。
- 分散システム
- マイクロサービス、メッセージキュー、イベントソーシングシステム全体で、独立してユニークな識別子を生成します。UUIDにより中央集権的なID生成サービスが不要になります。
- API開発
- RESTfulおよびGraphQL APIのユニークなリクエストID、相関ID、冪等キーを作成します。UUIDにより分散サービス境界をまたいだリクエストの追跡が容易になります。
- セッション & トークン管理
- 認証フローのためのユニークなセッション識別子と一時トークンを生成します。UUIDは大規模ユーザーベースにおけるセッション衝突を防ぐのに十分な一意性を提供します。
- テスト & 開発
- テストデータ、モック識別子、自動テスト用のユニークなフィクスチャIDを素早く生成できます。一括生成機能により、開発用データベースやテストスイートへのデータ投入が容易になります。
技術詳細
- UUIDの構造
- UUIDは128ビット(16バイト)で、32桁の16進数文字が8-4-4-4-12のフォーマットで表されます。ビット48〜51(13番目の16進数桁)がバージョン番号をエンコードします。ビット64〜65がバリアントフィールドをエンコードし、UUIDのレイアウトを識別します。残りのビットにはバージョン固有のペイロード(タイムスタンプ、乱数データ、またはハッシュ出力)が含まれます。
- バージョンビット
- ビット48〜51(第7バイトの上位ニブル)がUUIDバージョンをエンコードします:0001 = v1(タイムスタンプベース)、0011 = v3(MD5名前ベース)、0100 = v4(ランダム)、0101 = v5(SHA-1名前ベース)、0110 = v6(時間再配置)、0111 = v7(Unixエポック時間)。この4ビットは生成時に常に明示的に設定されます。
- バリアントフィールド
- ビット64〜65(第9バイトの最上位2ビット)がバリアントを定義します。パターン10xはRFC 4122/9562 UUID(大多数)を示します。パターン110はMicrosoft GUIDを示し、混合エンディアンのバイトオーダーを使用します。パターン0xxはNCS後方互換UUID(レガシー)を示します。パターン111は将来の使用のために予約されています。
- RFC 9562標準
- RFC 9562は2024年5月に公開され、RFC 4122に代わるUUIDの決定版仕様となりました。UUIDバージョン6、7、8を正式に導入しています。バージョン6はv1のフィールドを並べ替えてソート可能にします。バージョン7は48ビットのミリ秒単位Unixタイムスタンプと乱数データを使用し、新しい時間ベースUUIDの推奨バージョンです。バージョン8はカスタムの実装固有UUIDのフォーマットを提供します。RFC 9562はまたv1を正式に非推奨とし、v6/v7の使用を推奨しています。
ベストプラクティス
- 適切なバージョンを選択する
- 順序付けや決定論性が不要な汎用の一意識別子にはv4を使用してください。データベースの主キーにはv7を使用——時間順の特性によりインデックスパフォーマンスが大幅に向上します。名前から決定論的なIDを導出する必要がある場合はv5を使用してください(より強力なハッシュのため、v3よりv5を優先します)。
- データベース主キーにはUUID v7を使用する
- UUID v7の時間順構造はB-treeの挿入を順次的に保ち、ランダムなv4 UUIDと比較してインデックスの断片化を約90%削減します。これにより書き込み速度の向上、インデックスサイズの縮小、キャッシュ利用率の向上が実現します。ほとんどのモダンなデータベース(PostgreSQL 17以降、MySQL 8.0以降)は、このパターンに最適化されたネイティブUUIDサポートを備えています。
- UUIDをセキュリティトークンとして使用しない
- UUIDは一意性のために設計されており、秘密性のためではありません。UUID v1は生成タイムスタンプとMACアドレスを漏洩します。UUID v4は予測可能な構造を持ち、エントロピーは122ビットのみです。セキュリティトークン、APIキー、セッションシークレットには、専用のCSPRNGで128ビットまたは256ビットの純粋な乱数データを生成し、UUID構造のオーバーヘッドを避けてください。
- 解析前に検証する
- UUIDを解析または保存する前に、正規表現でフォーマットを必ず検証してください。APIエンドポイント、フォーム送信、データベース入力などのシステム境界で不正な入力を拒否してください。これにより、インジェクション攻撃、データ破損、無効な識別子がシステム全体に伝播することによるデバッグ困難なエラーを防止できます。
よくある質問
UUIDとは何ですか?
UUIDの各バージョンの違いは何ですか?
UUID v4とv7はどちらを使うべきですか?
UUIDの衝突確率はどのくらいですか?
UUIDとGUIDの違いは何ですか?
UUID v4は暗号学的に安全ですか?
UUIDのフォーマットを検証する方法は?
UUIDはデータベースの主キーに適していますか?(パフォーマンス、安全性、最適なバージョン)
名前空間UUID(v3/v5)とは何ですか?
UUID nil値とは何ですか?
UUID v7とは何ですか?なぜ使うべきですか?
UUIDをデコードする方法は?
UUID vs ULID vs nanoid——どれを使うべきですか?
マイクロサービスを構築中で、PostgreSQLの主キーにUUID v4とv7のどちらを使うべきですか?
チームでデータベースIDにUUIDと自動インクリメント整数のどちらを使うか議論しています。実際のトレードオフは?
関連ツール
すべてのツールを見る →MD5ハッシュジェネレーター&ファイルチェックサムツール
セキュリティツール
無料オンラインMD5ハッシュ生成ツール。ブラウザ上でMD5・SHA-256・SHA-1・SHA-512のハッシュ値を即座に生成。テキストやファイルのチェックサム検証・比較、ワンクリックコピー対応。登録不要でデータはサーバーに送信されません。
ランダムパスワードジェネレーター
セキュリティツール
無料のオンラインランダムパスワード生成ツール。ブラウザ上で安全な強力パスワードを即座に自動生成できます。長さや文字種のカスタマイズ、最大50個の一括生成に対応。エントロピー分析付き強度メーター搭載。データはサーバーに送信されません。
進数変換ツール — 2進数・16進数・10進数・8進数
単位変換
無料オンライン進数変換ツール。2進数、8進数、10進数、16進数および任意の基数(2-36)間で数値を瞬時に変換。BigInt対応で桁数制限なし。登録不要・サーバー送信なし、すべての処理がブラウザ内で完結。コピーボタンやコードリテラル出力で開発作業を効率化。
Base64エンコーダー&デコーダー
エンコーディングとフォーマット
Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。
画像圧縮ツール — JPEG・PNG・WebP を無料でオンライン圧縮
単位変換
無料オンライン画像圧縮ツール。JPEG、PNG、WebP 画像をブラウザ上で最大 80% 縮小。サーバーへのアップロード不要で完全プライベート。最大 20 枚の一括圧縮、品質調整、圧縮前後の比較機能を搭載。登録不要ですぐに使えます。
JSONフォーマッター&バリデーター
エンコーディングとフォーマット
無料オンラインJSON整形ツール。ブラウザ上でJSONのフォーマット、構文検証、圧縮を即座に実行。エラー検出、ワンクリックコピー対応。データは端末外に送信されず、100%プライバシー保護。