лучшая практика для создания общего идентификатора пользователя - PullRequest
1 голос
/ 21 июня 2010

Каков наилучший способ реализовать метод, который создает и передает идентификаторы пользователю в приложении asp.net?

Я думал об использовании тиков DateTime и идентификатора потока

Iхочу убедиться, что нет столкновений, и идентификаторы пользователей уникальны.

Идентификатор может быть строкой или длинной.

мне следует использовать MD5 для некоторой информации, которую я собираю от пользователя?что бы это было?

Я видел, что частота столкновений md5 очень низкая.

Ответы [ 3 ]

7 голосов
/ 21 июня 2010

Я бы использовал GUID на основании предоставленной вами ограниченной информации.

3 голосов
/ 21 июня 2010

Самое простое решение - автоинкрементное число. Для этого требуется центральный сервер.

Дата / время плюс односторонний хеш для псевдослучайных идентификаторов. Должны ли они быть псевдослучайными для безопасности? На эту уникальность не следует полагаться, поскольку по определению сталкиваются односторонние хэши. Вам все еще нужен центральный сервер, чтобы проверить наличие дубликатов перед выдачей идентификатора.

GUID лучше всего использовать, если идентификаторы создаются в распределенной системе (без центрального сервера для генерации идентификатора). GUID можно генерировать на отдельных машинах, и они не должны конфликтовать. Зависит от реализации, но некоторые алгоритмы GUID просто псевдослучайны, и да, все еще существует вероятность столкновения.

1 голос
/ 22 июня 2010

Guid - безусловно лучший выбор для генерации уникальных идентификаторов для чего-то вроде идентификатора пользователя. Они абсолютно гарантированно будут уникальными в глобальном масштабе (отсюда и название). Чтобы лучше всего работать с кластерным индексом, вы должны использовать NEWSEQUENTIALID () . Это генерирует последовательные идентификаторы, которые могут быть добавлены к индексу, и предотвращает необходимость реорганизации сервера SQL Server и просмотра индекса при каждом добавлении значения. Существует небольшая проблема безопасности, связанная с использованием этой функции, в которой может быть определено следующее значение в последовательности.

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