当C#达到生成Guid.NewGuid()的极限时会发生什么?如何处理?

当C#达到生成Guid.NewGuid()的极限时会发生什么?如何处理?,c#,guid,C#,Guid,我有一个场景,我需要生成一个唯一的密钥,我在C#中使用Guid.NewGuid(),并在用户请求时通过电子邮件将该密钥发送给用户,在接下来的48小时内,该用户将通过该唯一密钥进行标识。用户请求此密钥没有限制,但只有最新的密钥才是识别用户的有效密钥。 我的问题是当C#达到生成新密钥的极限时会发生什么?。我真的需要担心吗?我将引用 128位足够大,生成算法足够独特,如果每秒生成100000000个guid并持续1年,则重复的概率仅为50%。或者,如果地球上每个人都生成了600000000个guid,

我有一个场景,我需要生成一个唯一的密钥,我在C#中使用Guid.NewGuid(),并在用户请求时通过电子邮件将该密钥发送给用户,在接下来的48小时内,该用户将通过该唯一密钥进行标识。用户请求此密钥没有限制,但只有最新的密钥才是识别用户的有效密钥。
我的问题是当C#达到生成新密钥的极限时会发生什么?。我真的需要担心吗?

我将引用

128位足够大,生成算法足够独特,如果每秒生成100000000个guid并持续1年,则重复的概率仅为50%。或者,如果地球上每个人都生成了600000000个guid,那么复制的概率只有50%


您永远不必担心它。

理论上,这是可能的,但实际上,再次获得相同的guid是非常罕见的。因为
2^128
确实是一个非常大的数字,但不是无穷大。

我的问题是当C#达到生成新密钥的极限时会发生什么?--你是说如果C#用尽可能的guid会发生什么?Eric Lippert的:“顺序2上有⁰ 世界上的个人计算机(当然还有很多手持设备或非PC计算设备,它们的计算能力大致相同,但让我们忽略它们)。假设我们把世界上所有的PC机都放在生成GUI的任务上;如果每个PC机都能生成,比如说2²⁰ 每秒GUIDs…碰撞的几率在仅仅30万亿年后变得相当好。”这回答了你的问题吗?我认为这将是一个有趣的答案。(请看碰撞一章)