[解決済み] GUIDとUUIDの違いは何ですか?
質問
この2つの略語が飛び交っていますが、GUIDとUUIDに何か違いがあるのでしょうか?
どのように解決するのですか?
<ストライク その シンプルな答え です。**違いはありません、それらは同じものです。
2020-08-20更新
: GUID(マイクロソフトが使用)とUUID(RFC4122で定義)は見た目も目的も似ていますが、微妙に、しかし時に重要な相違点があります。 具体的には
マイクロソフトGUIDドキュメント
GUIDは任意の位置に任意の16進数の数字を含むことができますが、RFC4122では
version
と
variant
フィールドを使用します。 また、[同じリンクにある]GUIDはすべて大文字であるべきですが、UUIDは
は
"小文字で出力し、入力時に大文字と小文字を区別しない"。 これは、コードライブラリ間の非互換性につながる可能性があります (
このような
).
(以下、原文のまま)
16バイト(128ビット)の値として扱い、ユニークな値として使用されます。 Microsoftの用語ではGUIDと呼ばれますが、Microsoftの用語を使わない場合はUUIDと呼んでください。
UUID仕様の作者やマイクロソフト社でさえ、両者は同義語だと主張しています。
-
IETFの紹介文より RFC 4122 "です。 UUID(Universally Unique IDentifier)URN名前空間 GUID(Globally Unique IDentifier)とも呼ばれるUUID(Universally Unique IDentifier)のための統一資源名の名前空間です。
-
から ITU-T Recommendation X.667, ISO/IEC 9834-8:2004 国際標準規格 UUIDはGUID(Globally Unique Identifiers)としても知られていますが、この勧告ではこの用語は使用しません。
-
そして、マイクロソフトはさらに クレーム GUIDはUUID RFCで規定されています: "マイクロソフトWindowsプログラミングとWindowsオペレーティングシステムでは、[RFC4122]で規定されているグローバル一意識別子 (GUID) は、... Windowsのプロトコル仕様では、GUIDの同義語としてUUID(universally unique identifier)という用語が使われることがあります。
しかし 正解 は、質問の「"UUID"」が何を意味するかによりますが......。
最初の部分は、質問者が何を考えて"UUID"と言っているのかによるものです。
マイクロソフトの主張は、すべてのUUIDがGUIDであることを暗示しています。しかし、すべてのGUIDは本当のUUIDなのでしょうか?つまり、すべてのUUIDの集合は、すべてのGUIDの集合の適切な部分集合に過ぎないのでしょうか、それともまったく同じ集合なのでしょうか。
RFC4122の詳細を見ると、UUIDには4種類のquot;variant"が存在することがわかります。 これは、UUIDの仕様策定において、これらの仕様がまとまる前から、このような16バイトの識別子が使用されていたことが主な理由です。の4.1.1節から RFC 4122 という4つの バリアント のUUIDは、以下の通りです。
- 予約済み、ネットワークコンピューティングシステム後方互換性
- は バリアント RFC4122で規定されている(このうち5つのサブバリエーションがあり、これらは"version"と呼ばれる)。
- 予約済み、マイクロソフト社後方互換性
- 将来の定義のために予約されています。
RFC 4122によると、すべてのUUIDは バリアント は本物のUUIDであり、すべてのGUIDは本物のUUIDです。GUIDとUUIDの間に違いはあるのかという文字通りの質問に対して、答えはRFC 4122のUUIDでは間違いなくNOです。 差はない (ただし、以下の後段を条件とします)。
しかし、すべてのGUIDが バリアント 2 UUID (例えば、Microsoft COM は variant 3 UUID である GUID を持ちます)。もし質問が「GUIDとvariant 2 UUIDs"の間に違いはありますか」であれば、答えはイエスでしょう--それらは異なることがありえます。この質問をする人はおそらく バリアント のみを想定しているのかもしれません。 バリアント 2 UUID"UUID;と言ったときのUUID(例えば、MACアドレス+時間や乱数アルゴリズム形式のUUIDを漠然と知っていて、これらは両方とも バージョン の バリアント 2). この場合、答えは はい違う .
つまり、質問者が何を考えてUUIDという言葉を発しているかによって、答えが変わってくるのです。彼らはバリアント2 UUID(それが彼らが認識している唯一のバリアントであるため)を意味するのか、それともすべてのUUIDを意味するのか?
後半は、UUIDの定義としてどの仕様を使っているかによります。
わかりにくいと思われた方は itu-t x.667 iso/iec 9834-8:2004 と技術的に完全に互換性があるとされています。 RFC 4122 . この勧告|国際標準に準拠するすべてのUUIDは、オクテット7のビット7を1に、オクテット7のビット6を0に設定したバリアントビットを持たなければならない(")という文章が、条項11.2に追加されています。ということは バリアント 2 UUIDはその規格に適合している(この2つのビットの値は バリアント 2). もしそうであれば、すべてのGUIDがITU-T/ISO/IEC UUIDに適合しているわけではありません。なぜなら、適合するITU-T/ISO/IEC UUIDは バリアント 2の値です。
したがって、本当の答えは、質問がどの仕様のUUIDについて尋ねているのかにも依存します。私たちが明らかにすべてのUUIDについて話していて、バリアント2のUUIDだけではないと仮定すると、次のようなものがあります。 差はない GUIDとIETFのUUIDの間にある、しかし 差あり GUIDと 適合 ITU-T/ISO/IECのUUID!
バイナリーエンコーディングが異なる可能性がある
バイナリでエンコードされた場合(人間が読めるテキスト形式ではなく)、GUID が格納されることがあります。 の4つのフィールドを持つ構造で、以下のようになります。この形式は、[UUID規格]とは異なります。 8 は、最初の3フィールドのバイト順のみである。
Bits Bytes Name Endianness Endianness
(GUID) RFC 4122
32 4 Data1 Native Big
16 2 Data2 Native Big
16 2 Data3 Native Big
64 8 Data4 Big Big
関連
-
[解決済み] GUID / UUIDの作成方法
-
[解決済み] GUIDとUUIDの違いは何ですか?
-
[解決済み] PythonでGUID/UUIDを作成する方法
-
[解決済み] GUIDを主キーとして使用する場合のベストプラクティス、特にパフォーマンスに関して教えてください。[クローズド]。
-
[解決済み】有効なUUID/GUIDをテストする方法は?
-
[解決済み】pythonでuuid.uuid1()とuuid.uuid4()はいつ使うべきですか?
-
[解決済み】iOSでGUID/UUIDを作成する方法
-
[解決済み】GUID / UUIDデータベースキーの利点と欠点
-
[解決済み】UUIDはどのようにユニークなのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン