jsfiddle Erzeugung eindeutiger Bezeichner

314
DrStrangeLove

Betrachten Sie jsfiddle.net:

Wenn Sie auf "Speichern" klicken, wird eine UID für Ihre jsfiddle wie vzBZB generiert.

Wie machen Sie das? Warum nur 5 Zeichen?

Und vor allem - wie stellen sie sicher, dass es nie zu einer Kollision kommt? (gleiche uid für 2 verschiedene jsfiddles generiert)

Können die UIDs eines Tages ausgehen?

0
Nun, wenn es sich nur um Buchstaben handelt und die Groß- / Kleinschreibung die 3.8E8-IDs ergibt. Um dies in die richtige Perspektive zu bringen, könnten sie 12 Jahre lang jede Sekunde eine neue ID ausgeben EBGreen vor 12 Jahren 1
Ich weiß nicht, was dieser Service ist, um Kollisionen zu vermeiden, aber theoretisch könnte er sie nacheinander austeilen. EBGreen vor 12 Jahren 0

1 Antwort auf die Frage

1
Dennis

How do they do it? Why only 5 characters?

The only sure way to know is ask jsFiddle, so this part of your question is not really constructive.

The UIDs are not generates sequentially, which is probably to prevent someone from browsing thorugh everybody else's fiddles.

How do they make sure there's never a collision?

That part is simple: You can just generate one at random and check if it does not exists already.

If it doesn't, you are done. If it does, repeat.

As long as there at least as much unused UIDs as used ones, you don't have to repeat more than once most times.

Can they run out of UIDs some day?

With a 52 letter alphabet (A-Z and a-z), you have 52 ^ 5 = 380,204,032 different UIDs available.

That already is a lot of fiddles, but if they ever run out, they could just add a sixth letter.