Мы с клиентом обсуждали способ создания имен пользователей из числовых идентификаторов пользователей (генерируемых базой данных). Ключевое требование - уникальность имен пользователей.
Наиболее очевидным решением было бы просто установить имя пользователя равным идентификатору пользователя. Но важное требование заключается в том, что имена пользователей не являются «явно последовательными» - поэтому, хотя идентификаторы пользователей могут быть равны 4000 4001 4002 400, клиент не хочет, чтобы пользователи видели этот прогресс в имени пользователя, даже если они числа в конечном итоге будут использоваться.
Также было бы желательно, чтобы длина имени пользователя была компактной, то есть длина не увеличивалась до тех пор, пока идентификаторы пользователя не достигли точки, необходимой для увеличения длины.
Есть предложения?
Edit:
Большинство ответов предполагали, что безопасность механизма важна - это не так. Клиент просто не хочет, чтобы было очевидно, кто является «старшим» участником от имени пользователя.
Основная цель имен пользователей состоит в том, чтобы их было легко запомнить, поэтому длинные хеши не так хороши.
Буквенно-цифровые символы в порядке, но клиент обеспокоен назначением потенциально «неправильных» имен пользователей. fpq321 было бы хорошо, ass123 не будет. Это будет публичный «дескриптор» пользователей.