2011-12-16 3 views
0

Я знаю, что я могу использовать GUID для создания уникальной строки, но она слишком длинная. Теперь мне нужно создать не дублируемую строку на веб-сайте, как я могу это сделать? Благодаря!Есть ли простой способ создания строки, не повторяющейся?

Например: На веб-сайте http://mathurl.com/ вы можете создать постоянный URL-адрес, такой как http://mathurl.com/75ujy7b и 75ujy7b, очень короткий и не дублируемый.

+0

Номера могут быть «un-duplicate». Таким образом, могут быть цифры в базе 36. Они также являются инкрементальными и, следовательно, легко сгенерированы;) –

+0

@Paul Вы также можете указать, какой язык вы используете, C#, vb.net и т. Д. – Skuld

+0

Я использую язык C# –

ответ

2

Прежде всего, вы можете начать с счетчика, который вы используете с помощью Mutex/lock, которые возвращают уникальные инкрементные числа, и вы сохраняете последнее число на своем сайте, возможно, в web.config, возможно, в базе данных или в файле ,

Затем вы преобразуете это уникальное число в другое базовое число, например, на базу-64. Вот код, а также детали режима о том, как вы можете сделать это

https://stackoverflow.com/a/5901201/159270

И вы можете получить результаты, как

value: 0 encoded: A 
value: 1 encoded: B 
value: 9999999999 encoded: SrYsNt 
value: 4294965286 encoded: ZNGEvT 
value: 2292964213 encoded: rHd24J 
value: 1000000000 encoded: TrNVzD 

Теперь, если вы зашифровать карту на персонажей вы можете также сделать не так просто найти номер.

0

вы можете использовать случайное число достаточной длины .. между позволяет сказать, 10000 и 99999 ..

если Эйнт достаточно хорошо для вас, вы можете посмотреть в некоторые алгоритмы хэширования .. я думаю ..

+1

Просто потому, что ваш случайный номер не останавливает дублирование номера. (Вы можете и в конечном итоге получить случайное число, создающее номер, который уже был использован) – Skuld

Смежные вопросы