ある勤勉な日、通常の .NET の方法で生成したGUIDの 3 番目のブロックの先頭にGuid.NewGuid()
同じ番号があることに気付きました。4
efeafa5f-fe21-4ab4-ba82-b9eefd5fa225
480b64d0-6762-4afe-8496-ac7cf3292898
397579c2-a4f4-4611-9fda-16e9c1e52d6a
...
1秒間に1回、10個ほど画面に表示されていました。5 番目の GUID の直後にあるこのパターンに注目しました。最後に、最後のものには同じ 4 つのビットがあり、私は幸運な人だと判断しました。私は家に帰って、私のような特別な人のために全世界が開かれていると感じました. 翌週、私は新しい仕事を見つけ、部屋を掃除し、両親に電話をかけました。
しかし、今日また同じパターンに直面しました。千回。そして、私はもう選ばれし者を感じません。
私はそれをグーグルで検索しましたが、今ではUUIDversion
と、4つの予約ビットと2つの予約ビットを持つ標準フォーマットについて知っていvariant
ます。
実験するスニペットを次に示します。
static void Main(string[] args)
{
while (true)
{
var g = Guid.NewGuid();
Console.WriteLine(BitConverter.ToString(g.ToByteArray()));
Console.WriteLine(g.ToString());
Console.ReadLine();
}
}
しかし、まだ理解できないことが 1 つあります (生きていく方法以外は)。なぜこれらの予約ビットが必要なのですか? それがどのように害を及ぼす可能性があるかはわかります-内部実装の詳細を公開し、衝突が増え(まだ心配する必要はありませんが、いつか...)、自殺が増えます-しかし、何の利益も見られません. 何か見つけるのを手伝ってくれませんか?