3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
基本上沒有 我認(rèn)為有人在破壞您的數(shù)據(jù)庫。根據(jù)使用的GUID版本,該值是唯一的(對(duì)于版本1 GUID而言),或者是唯一且不可預(yù)測的(對(duì)于版本4 GUID而言)。SQL Server的NEWID()函數(shù)的實(shí)現(xiàn)似乎使用128位隨機(jī)數(shù),因此不會(huì)發(fā)生沖突。
要使碰撞幾率達(dá)到1%,您需要生成大約2,600,000,000,000,000,000個(gè) GUID。

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
首先,讓我們看一下兩個(gè)GUID發(fā)生碰撞的機(jī)會(huì)。正如其他答案所指出的,由于生日悖論,它不是2 ^ 128(10 ^ 38)中的1 ,這意味著對(duì)于兩個(gè)GUID發(fā)生沖突的可能性為50%,實(shí)際上是2 ^ 64中的1(10 ^ 19)小得多。但是,這仍然是一個(gè)非常大的數(shù)目,因此,假設(shè)您使用的是合理數(shù)量的GUID,發(fā)生碰撞的可能性很低。
還請(qǐng)注意,GUID不包含很多人似乎相信的時(shí)間戳或MAC地址。對(duì)于v1 GUID確實(shí)如此,但是現(xiàn)在使用v4 GUID,它只是一個(gè)偽隨機(jī)數(shù),這意味著發(fā)生碰撞的可能性更高,因?yàn)樗鼈儾辉偈菚r(shí)間和機(jī)器所獨(dú)有的。
因此,基本上答案是肯定的,可能發(fā)生碰撞。但是它們極不可能。
- 3 回答
- 0 關(guān)注
- 984 瀏覽
添加回答
舉報(bào)