UUID/GUID生成ツール
UUID (Universally Unique Identifier) v4を生成する無料オンラインツールです。
✨ 生成されたUUID
UUID (Universally Unique Identifier) v4を生成します。各UUIDは統計的に一意であり、データベースキー、セッションIDなどとして使用されます。
💡 例
デフォルト(小文字、ハイフン):
550e8400-e29b-41d4-a716-446655440000大文字:
550E8400-E29B-41D4-A716-446655440000ハイフンなし:
550e8400e29b41d4a716446655440000UUIDとは?
UUID (Universally Unique Identifier) またはGUID (Globally Unique Identifier)は、情報を一意に識別するための128ビットの数値です。UUID v4はランダムに生成され、重複する確率はほぼゼロに近いです。
主な機能
- 一括生成: 1個、5個、10個、20個から選択可能
- 大文字/小文字: お好みの形式を選択
- ハイフンオプション: ハイフン付き/なしを選択
- 即座にコピー: ワンクリックでクリップボードにコピー
- ブラ ウザベース: インストール不要、完全にクライアントで実行
使い方
基本的な使い方
- 生成するUUIDの個数を選択します (1、5、10、20)
- オプションを選択します:
- 大文字: チェックすると大文字で生成
- ハイフン付き: チェックするとハイフン付き形式
- 「生成」ボタンをクリックします
- 生成されたUUIDをコピーして使用します
形式の選択
基本形式 (小文字、ハイフン付き)
550e8400-e29b-41d4-a716-446655440000
大文字
550E8400-E29B-41D4-A716-446655440000
ハイフンなし
550e8400e29b41d4a716446655440000
UUID構造
UUID v4は以下のような構造を持ちます:
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
- x: ランダムな16進数 (0-9, a-f)
- 4: バージョン番号 (v4を表す)
- y: ランダムな16進数 (8, 9, a, b のいずれか)
合計128ビット = 32桁の16進数で表現されます。
使用例
1. データベース主キー
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(100),
email VARCHAR(100)
);
2. 分散システムID
複数のサーバーで独立してIDを生成しても衝突なし:
const userId = '550e8400-e29b-41d4-a716-446655440000';
const sessionId = 'a3bb189e-8bf9-3888-9912-ace4e6543002';
3. ファイル名
const filename = `upload-${uuid}.jpg`;
// upload-550e8400-e29b-41d4-a716-446655440000.jpg
4. APIトークン
Authorization: Bearer 550e8400-e29b-41d4-a716-446655440000
5. セッションID
const sessionId = generateUUID();
sessionStorage.setItem('sessionId', sessionId);
UUIDバージョン
UUID v1
- タイムスタン プ + MACアドレスベース
- 時系列順序を保証
- MACアドレス露出の懸念
UUID v4 (このツールで使用) ⭐
- 完全にランダム
- 最も広く使用されている
- 個人情報の露出なし
UUID v5
- 名前ベース (SHA-1ハッシュ)
- 同じ入力 → 同じUUID
衝突確率
UUID v4の衝突確率は極めて低いです:
- 生成可能なUUID総数: 2^122 ≈ 5.3 × 10^36個
- 10億個生成時の衝突確率: 約10^-18 (ほぼゼロ)
- 宇宙の全原子数: 10^80個
実用的に衝突を心配する必要はありません!
プログラミング言語別の使用方法
JavaScript
// ブラウザ
const uuid = crypto.randomUUID();
// Node.js
const { v4: uuidv4 } = require('uuid');
const uuid = uuidv4();
Python
import uuid
# UUID v4生成
my_uuid = uuid.uuid4()
print(my_uuid) # 550e8400-e29b-41d4-a716-446655440000
Java
import java.util.UUID;
UUID uuid = UUID.randomUUID();
String uuidString = uuid.toString();
PHP
<?php
$uuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
mt_rand(0, 0xffff),
mt_rand(0, 0x0fff) | 0x4000,
mt_rand(0, 0x3fff) | 0x8000,
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
?>
C#
using System;
Guid uuid = Guid.NewGuid();
string uuidString = uuid.ToString();
実用的なヒント
1. 一括生成
多数のUUIDが必要な時に一度に生成:
- テストデータ生成
- マイグレーションスクリプト
- シードデータ準備
2. データベースインデックス
UUIDを主キーとして使用する際の注意点:
- 完全にランダム → B-Treeインデックスのパフォーマンス低下の可能性
- UUID v1またはULIDを検討 (順序的特性)
- PostgreSQLの
gen_random_uuid()使用を推奨
3. URLでの使用
// ハイフンなし形式がすっきり
const url = `https://example.com/items/${uuid.replace(/-/g, '')}`;
4. ロギングとトレース
const requestId = crypto.randomUUID();
console.log(`[${requestId}] Request started`);
// ... 処理 ...
console.log(`[${requestId}] Request completed`);
セキュリティに関する考慮事項
✅ 安全な使用
- セッションID
- APIキー (追加のセキュリティと併用)
- 一時ファイル名
- トラッキングID
⚠️ 注意が必要
- 予測不可能だが秘密ではない: UUIDのみで認証しないでください
- 追加検証が必要: 権限確認、署名など
- 露出可能: URLに含める場合ログに記録される
よくある質問
Q: UUIDは本当に一意ですか?
はい。統計的に衝突確率はほぼゼロです。実際に重複する可能性は、宇宙の年齢の間、毎秒10億個を生成してもほとんどありません。
Q: UUID v4とv1の違いは?
- v1: タイムスタンプ + MACアドレスベース、時系列順序保証、個人情報露出の懸念
- v4: 完全にランダム、時系列順序なし、個人情報安全
Q: 大文字と小文字、どちらを使うべきですか?
一般的に小文字が標準ですが、どちらも有効です。システム要件に応じて選択してください。
Q: ハイフンは必須ですか?
ハイフンは可読性のためのものです。一部のシステムではハイフンなし形式を好みます。