Есть ли готовый алгоритм генерации кода приглашения по ruby? - PullRequest
4 голосов
/ 13 июня 2011

Есть ли готовый алгоритм генерации кода приглашения по ruby?Сначала я могу подумать, MD5, но его выход слишком велик для 32, поэтому я хочу, чтобы длина выхода была меньше 16.

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 13 июня 2011

Предполагая, что вы храните код (в противном случае, какой смысл?), Просто создайте случайную строку и проверьте, существует ли она перед сохранением, и попробуйте новую строку, если она есть.Основной алгоритм не требуется.

0 голосов
/ 19 июня 2014
SecureRandom.uuid

Это приведет к следующему.

2.1.0 :005 > SecureRandom.uuid
 => "b2a8ed4c-f71f-4c7d-a0fb-a66de58d37cc" 
2.1.0 :006 > 

Достаточно короткий и крайне маловероятный, чтобы вызвать столкновение.

0 голосов
/ 13 июня 2011

Насколько "безопасен" вы хотите свой код приглашения?Вы можете сгенерировать хеш MD5 и просто взять первые или последние 16 символов или любую комбинацию из 16 символов из хеш-кода (например, любую другую позицию в хэше).Это должно быть достаточно для приглашения.

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