Dies bezieht sich auf diese Frage . Ich verwende den folgenden Code aus dieser Antwort , um eine UUID in JavaScript zu generieren:
'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
return v.toString(16);
});
Diese Lösung schien gut zu funktionieren, aber ich bekomme Kollisionen. Folgendes habe ich:
- Eine Web-App, die in Google Chrome ausgeführt wird.
- 16 Benutzer.
- In den letzten 2 Monaten wurden von diesen Benutzern etwa 4000 UUIDs generiert.
- Ich habe ungefähr 20 Kollisionen erhalten - z. B. war die heute generierte neue UUID dieselbe wie vor ungefähr 2 Monaten (anderer Benutzer).
Was verursacht dieses Problem und wie kann ich es vermeiden?
(r&0x3|0x8)
Teil / Bewertung?