У меня есть проблема, которая действительно легко разрешается с помощью Guids.Создание гидов в Ruby
В частности, для рабочего процесса сброса пароля я хотел бы отправить маркер Guid в адрес электронной почты пользователя и восстановить их пароль с помощью токена. Поскольку подсказки уникальны, это довольно безопасно и позволяет мне отправлять письма электронной почты людям, что является рискованным.
Я заметил, что есть один Guid gem для Ruby; но он выглядит довольно старым и записывает материал в файловую систему.
Кто-нибудь знает о любых других драгоценных камнях, которые могут создать глобально уникальный идентификатор?
Я знаю, что могу просто упасть обратно:
(0..16).to_a.map{|a| rand(16).to_s(16)}.join
Но это не очень похоже, как настоящий GUID ...
Использование такой случайной строки, как это было бы неправильно; определенные биты в UUID указывают вариант и версию. Для случайного UUID вам, вероятно, нужен вариант 2 (RFC 4122) и версия 4, и в этом случае 6 определенных битов должны быть установлены на правильные значения. – jtpereyda
Да @ dafrazzman прав. Случайно соединяя что-то, что «напоминает UUID», не гарантирует уникальности. Хотя UUID не гарантирован * *, построение одного со случайными числами FAR более восприимчиво к столкновениям и не может быть достойным метки «UUID». Определенно зайдите с SecureRandom.uuid! – dooleyo