在我们的系统上,来自不同语言(主要是C ++和python)的不同例程在相同的数据库表上进行交互。
在python中,uuid1实现(MAC +时间以ns为单位)是我的最爱,因为它大大降低了(低但仍然存在)碰撞风险。在我们的背景下,MAC地址披露不是问题 但是AFAIK,C ++实现,例如Boost lib,只是uuid4等价物(伪随机)。
鉴于python和C ++中的uuid4(或者如果我们将来也介绍它的Java)之间的实现可能会有很大不同,我怀疑它可能会大大增加碰撞风险。
你会混合使用python的uuid1和C ++ / Boost uuid4吗? 或者用这两种语言去uuid4? 或者使用另一个lib而不是Boost转到uuid1 ...
P.S。
提议的重复问题"不要解决我的问题,因为NEWID和Guid.Comb不符合uuid1和uuid4(它们混合基于时间和伪随机字节)