генерация уникального идентификатора jsfiddle

265
DrStrangeLove

Рассмотрим jsfiddle.net:

Когда вы нажимаете «сохранить», они генерируют UID для вашего jsfiddle, как vzBZB.

Как они это делают? Почему только 5 символов?

И в первую очередь - Как они убеждаются, что столкновения никогда не бывает? (один и тот же uid, сгенерированный для 2 разных jsfiddles)

Могут ли они когда-нибудь исчерпать UID?

0
хорошо, если это просто буквы и они чувствительны к регистру, что даст вам 3.8E8 ID. Чтобы представить это в перспективе, они могут выдавать новое удостоверение личности каждую секунду в течение 12 лет. EBGreen 12 лет назад 1
Что касается предотвращения коллизий, я понятия не имею, что это за служба, но теоретически они могут просто раздавать их последовательно. EBGreen 12 лет назад 0

1 ответ на вопрос

1
Dennis

Как они это делают? Почему только 5 символов?

Единственный верный способ узнать это спросить jsFiddle, так что эта часть вашего вопроса не очень конструктивна.

Идентификаторы UID не генерируются последовательно, что, вероятно, препятствует тому, чтобы кто-то просматривал чужие скрипки.

Как они удостоверяются, что никогда не бывает столкновения?

Эта часть проста: вы можете просто сгенерировать один случайным образом и проверить, не существует ли он уже.

Если это не так, вы сделали. Если это так, повторите.

Пока неиспользованных UID не меньше, чем используемых, вам не нужно повторять чаще, чем один раз.

Могут ли они когда-нибудь исчерпать UID?

С 52-буквенным алфавитом ( A-Zи a-z) у вас есть 52 ^ 5 = 380,204,032различные доступные UID.

Это уже много скрипок, но если они когда-нибудь закончатся, они могут просто добавить шестую букву.