アドバタイズメント

UUID ジェネレータ

一意の UUID (汎用一意識別子) を生成する

-

UUID とは何ですか?

UUID (Universally Unique Identifier) は、すべてのユーザー間で一意になるように設計された 128 ビットの識別子です。 空間と時間。 RFC 4122, UUIDs follow the format xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx where M indicates the version and N indicates the variant.

の形式に従います。このツールは、暗号的に安全な乱数を使用してバージョン 4 (ランダム) UUID を生成します。と 122 個のランダム ビット、衝突の可能性は天文学的に小さいため、10 億個のビットが生成される可能性があります 100 年間の 1 秒あたりの UUID 数でも、単一の重複が発生する確率は 50% 未満です。

UUID バージョンの説明

バージョン 1 (時間ベース)

タイムスタンプと MAC に基づく 住所。時間順に並べ替えることができますが、デバイスの ID が明らかになります。

バージョン 3 (MD5 ハッシュ)

名前空間から生成され、 MD5を使用して名前を付けます。同じ入力は常に同じ UUID を生成します。

バージョン 4 (ランダム) ✓ このツールは

ランダムに生成されます。最も一般的な 一意の識別子の選択。情報漏洩はありません。

バージョン 5 (SHA-1 ハッシュ)

v3 と似ていますが、SHA-1 を使用します。好ましい 名前ベースの UUID の場合は v3 よりも優れています。

バージョン 7 (時間順)

Unix タイムスタンプを使用した新しい標準。 ソート可能、ランダム、MAC アドレスは明らかにされません。

一般的な使用例

🗄️ データベース主キー

UUID を使用すると、データベースを調整せずにクライアント側で ID を生成できます。に最適 複数のノードが同時にレコードを作成する必要がある分散システム。

🔐 セッション ID とトークン ID

セキュアなセッション ID、API トークン、および一時アクセス コード。ランダム性により、 それらは推測不可能であり、列挙攻撃を防ぎます。

📁 ファイルとリソースの名前付け

アップロード、キャッシュ キー、または一時ファイル用に一意のファイル名を生成します。ネーミングを防止します 一元化されたネームサービスを必要とせずに競合を回避できます。

🔄 分散システム

マイクロサービス全体でリクエストをトレースするためのイベント ID、メッセージ ID、相関 ID。それぞれ サービスは独立して ID を生成できます。

よくある質問

将来、 UUIDが重複していますか?

実際には、そうではありません。 v4 UUID には 2¹²² の可能な値 (5.3 × 10³⁶) があります。 50%の確率で 衝突が発生した場合、約 2.7 × 10¹⁸ の UUID を生成する必要があります。これは 2.7 京に相当します。

UUID を使用する必要がありますか、それとも IDの自動インクリメント?

単一データベースを使用する単純なアプリには自動インクリメントを使用します。分散型の UUID を使用する ID がクライアント側で生成されるシステム、またはシーケンシャルな ID を公開したくない場合 注文(セキュリティ)。

UUID は次の用途に適していますか? データベースのパフォーマンス?

ランダムな UUID は、B ツリー インデックスの断片化を引き起こす可能性があります。 UUID v7 (時間順) の使用を検討するか、 パフォーマンスを向上させるために、varchar(36) ではなく binary(16) として保存します。一部のデータベースには、 ネイティブ UUID タイプ。

違いは何ですか UUIDとGUIDの間?

これらは本質的に同じものです。 GUID (Globally Unique Identifier) は Microsoft の用語です UUIDの場合。どちらも同じ仕様に従う 128 ビット識別子を指します。

UUID フォーマットリファレンス

標準: 550e8400-e29b-41d4-a716-446655440000
ダッシュなし: 550e8400e29b41d4a716446655440000
中括弧: {550e8400-e29b-41d4-a716-446655440000}
URN: urn:uuid:550e8400-e29b-41d4-a716-446655440000
大文字: 550E8400-E29B-41D4-A716-446655440000
アドバタイズメント