3

RFC 4122では、UUIDをかなり詳細に定義しています。現在、5 つのバリアントが定義されており、すべて 128 ビットですが、ビットの導出方法が異なります。

特定のバリアントを遵守することを気にする必要があるのはなぜですか。ID が作成されたら、UUID を使用する人が、それがどのように構築されたかを知る必要がある理由は何ですか?

特に、Variant 4 (完全にランダム) を使用する場合、ランダム ビットを 128 から 122 (バリアント用に 4b ビット、予約済みの 2 ビット) に減らす RFC に従うのは無駄に思えます。RFC に従わず、ランダム性のために 128 ビットすべてを使用した方がよいのではないでしょうか?

4

1 に答える 1

5

ルールに従わない場合、ID が他のアルゴリズムのいずれかによって生成された ID と衝突する可能性があります。

一部のアルゴリズム (v1 など) は決定論的であるため、アルゴリズムがバージョン フィールドに "1" を含む GUID を誤って生成した場合、攻撃者は GUID の衝突を強制することができます。攻撃者は、GUID の最後の部分と一致するように MAC アドレスを設定し、開始部分に一致する時間。次に、[送信] をクリックするとブームが起こり、GUID が衝突し、データベースが爆発し、お金がケイマン諸島に送金されます。各アルゴリズムは、それ自体との衝突を回避するように設計されていますが、他のアルゴリズムとの衝突を防ぐ方法はありません。ただルールに従ってください。これらの余分な 6 ビットについて卑劣になろうとしないでください。

于 2012-11-28T08:28:16.903 に答える