UUIDを生成
UUIDバリデーター
UUID形式
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxxUUIDについて
UUID(Universally Unique Identifier)はGUID(Globally Unique Identifier)とも呼ばれる128ビットの値で、コンピューターシステム内の情報を一意に識別します。UUIDはRFC 4122で標準化され、中央調整なしに一意なキーを作成できるため、データベース、分散システム、APIで広く使われています。
UUID(汎用一意識別子)完全ガイド
無料オンラインUUID/GUID生成
UUID(Universally Unique Identifier)またはGUID(Globally Unique Identifier)をブラウザ内で即時生成できます。このツールはUUIDバージョン4(ランダム)、バージョン1(時間ベース)、nil UUIDに対応しています。単体または最大500件の一括生成、既存UUIDの検証、大文字やハイフンなしの出力形式に対応。生成はWeb Crypto APIを使ってクライアント側で行われ、データがサーバーへ送信されることはありません。
UUIDバージョンの説明
UUID v4(ランダム)
- ランダム/疑似ランダム値から生成
- 122ビットのランダム性
- 最も一般的に使われるバージョン
- 衝突確率は 1 / 2^122
- 汎用的な一意IDに最適
UUID v1(時間ベース)
- タイムスタンプ + ノードIDに基づく
- 時間とMAC情報を含む
- 複数マシン間で一意性を保証
- 作成時刻で並べ替え可能
- 分散システムに適しています
UUID v3(MD5名前ベース)
- 決定的: 同じ名前 = 同じUUID
- namespace + nameのMD5ハッシュを使用
- システム間で再現可能
- 一貫した命名方式に有用
- v4やv5ほど一般的ではありません
UUID v5(SHA-1名前ベース)
- 決定的: 同じ名前 = 同じUUID
- SHA-1ハッシュを使用(v3より安全)
- 新規アプリではv3より推奨
- システム間で再現可能
- コンテンツアドレス指定に有用
UUID生成ツールの使い方
- バージョンを選択: UUID v4(ランダム)、v1(時間ベース)、またはNil UUIDを選びます。
- 数量を設定: 生成するUUID数(1〜500)を入力します。
- 形式を選択: 必要に応じて大文字やハイフンなしオプションを切り替えます。
- 生成: 「UUIDを生成」ボタンをクリックしてUUIDを即時作成します。
- コピー: 個別UUIDの「コピー」または「すべてコピー」で結果を取得します。
UUIDの一般的な利用例
データベース主キー: UUIDはPostgreSQL、MySQL、MongoDBなどのデータベースで主キーとして使われ、分散システムで整数IDの衝突を避けます。複数ソースのデータをキー衝突なしに統合できます。
APIリソース識別子: REST APIではユーザー、注文、セッションなどのリソースを一意に識別するためUUIDを使います。UUIDは連番ではないため推測されにくく、APIセキュリティの向上にも役立ちます。
分散システム: マイクロサービスや分散アーキテクチャでは、各サービスが中央調整や共有カウンターなしに一意IDを独立生成できます。
セッションとトークン管理: UUIDはセッショントークン、CSRFトークン、パスワードリセットトークン、メール確認リンクなどに使われ、予測困難な一意識別子を提供します。
ファイル名: アップロードファイルの一意なファイル名生成にUUIDを使うと、名前の衝突を避け、URLを推測されにくくできます。
メッセージキュー: RabbitMQ、Kafka、SQSなどのメッセージシステムでは、メッセージを一意に識別し、冪等処理を保証するためUUIDを使います。
相関ID: ログとオブザーバビリティでは、UUIDで複数サービスをまたぐリクエストを追跡し、分散システムでエンドツーエンドのトレースを可能にします。
UUIDの形式と構造
標準形式: ハイフンで区切られた8-4-4-4-12桁の16進数
例: 550e8400-e29b-41d4-a716-446655440000
合計サイズ: 128ビット(16バイト)、32文字の16進数として表現
バージョン桁: 13番目の16進桁(Mの位置)がUUIDバージョン(1〜5)を示します
バリアントビット: 17番目の16進桁(Nの位置)がバリアント(RFC 4122では8、9、a、b)を示します
可能なUUID総数: v4では 2^122 ≈ 5.3 × 10^36(地球表面の原子数推定より多い)
このUUID生成ツールを使う理由
100%無料・無制限: 登録、サブスクリプション、制限なしで無制限にUUIDを生成できます。
完全なプライバシー: すべてのUUID生成はWeb Crypto APIを使ってブラウザ内で行われます。データがサーバーへ送信されることはありません。
暗号学的に安全: UUID v4はcrypto.randomUUID()またはcrypto.getRandomValues()を使い、真に近いランダム性を得ます。
一括生成: バッチ処理、データベースシード、テスト向けに最大500件のUUIDを一度に生成できます。
内蔵バリデーター: 任意のUUIDを貼り付けて形式を検証し、バージョンとバリアントを確認できます。
柔軟な出力: 大文字、小文字、ハイフンあり/なしなど、必要に合わせて形式をカスタマイズできます。
UUIDと他の一意ID方式の比較
UUID vs 自動採番: 自動採番IDは連続的で推測可能で、中央データベースが必要です。UUIDはランダムで推測されにくく、調整なしにどこでも生成できます。分散システムではUUIDが好まれます。
UUID vs ULID: ULID(Universally Unique Lexicographically Sortable Identifier)は時間順に並べられ、文字列表現がよりコンパクトです。UUIDはより広くサポートされ、RFC 4122で標準化されています。
UUID vs Snowflake ID: Snowflake ID(Twitter/XやDiscordで使用)は64ビットでソート可能ですが、ワーカー調整が必要です。UUIDは128ビットで完全に分散的に生成でき、インフラを必要としません。
UUID vs NanoID: NanoIDは短く(21文字 vs 36文字)、URL向きでカスタマイズ可能です。UUIDはより標準化され、すべてのプラットフォームと言語で広く認識されています。
ベストプラクティス
- 基本はv4を使用: UUID v4(ランダム)は最も一般的で、多くのアプリケーションで一意識別子生成に推奨されます。
- バイナリとして保存: データベースではVARCHAR(36)ではなく、BINARY(16)またはネイティブUUID型で保存すると性能と容量効率が向上します。
- インデックスを考慮: ランダムUUIDはB-treeインデックスで断片化を起こすことがあります。必要なら時間順に並べられるUUID v7やULIDを検討してください。
- 秘匿性だけに頼らない: UUIDは推測困難ですが(v4は122ランダムビット)、唯一のセキュリティ機構にしないでください。適切な認証と認可を追加しましょう。
- 大文字小文字を区別しない: UUID比較は大文字小文字を区別しないようにし、一貫性のため小文字で保存・比較しましょう。
- ネイティブ型を使用: PostgreSQLにはネイティブUUID型があり、MySQL 8.0+にはUUID関数があります。利用できる場合は文字列保存より優先してください。
- 入力を検証: ユーザー入力や外部APIからUUIDを受け取る場合は、必ずUUID形式を検証してください。
こんな用途に最適
- バックエンド/フルスタック開発者
- データベース管理者
- API設計者・アーキテクト
- DevOpsエンジニア
- QAテスター・自動化エンジニア
- データエンジニア
- マイクロサービス開発者
- モバイルアプリ開発者
- IoTシステム設計者
- 技術プロジェクトマネージャー
- 分散システムを学ぶ学生
- オープンソース貢献者
100%プライバシー保護
すべてのUUID生成はWeb Crypto APIを使ってブラウザ内で実行されます。データがサーバーへアップロード、データベース保存、ログ記録、第三者送信されることはありません。生成されたUUIDは暗号学的に安全で、端末から外へ送信されません。