我read an answer about guid,这非常有趣。似乎GUID基于时间,v1使用带有vG的MAC地址使用RNG。
来自wiki
WinAPI GUID的密码分析 发电机显示,自从 V4 GUID序列是伪随机的; 充分了解内部知识 国家,有可能预测 之前和之后的值。
我需要担心吗?说为用户生成cookie数据?或密码重置键?
我的问题是如何正确使用GUID以及如何防止创建相同的GUID(例如通过同一毫秒内创建的同一台机器上的两个线程)以及如何以不会显示以前键的方式使用它。我从使用异步RNG切换到同步RNG(线程之间的锁定)到GUID,现在我认为可能存在问题。
答案 0 :(得分:1)
答案是使用基于随机数的GUI。
eaerlier计划有效地被打破。处理器速度的提高现在可以基于相同的毫秒刻度生成多个强制GUID。虚拟化意味着您可以与操作系统的多个内容共享相同的MAC地址。多处理器机器的兴起意味着两个进程可以在相同的时钟周期内在同一台机器上生成GUID。
虽然仍然可以使用基于随机数的方案生成重复项,但是在另一个星系的特定行星上赢得彩票的几率大致相同。
答案 1 :(得分:1)
您无需担心这一点。
您不会使用.Net生成重复的Guids。
如果有可能你会在这里投诉。世界各地的人们都在以极低的速度推出新的Guid,你或我永远不会接近的速度,而且没有一个产生重复。
无需担心线程问题。 Guid.NewGuid()
调用保证是线程安全的。多核不会有所作为。
说真的,这不用担心。