Tôi gặp sự cố thực sự dễ dàng được giải quyết với các hướng dẫn.Tạo các hướng dẫn trong Ruby
Cụ thể, đối với quy trình đặt lại mật khẩu, tôi muốn gửi mã thông báo Guid tới email của người dùng và yêu cầu họ đặt lại mật khẩu của họ bằng mã thông báo. Kể từ khi guids là duy nhất, điều này là khá an toàn và giúp tôi gửi email cho mọi người mật khẩu, đó là nguy hiểm.
Tôi nhận thấy có một Guid gem dành cho Ruby; nhưng nó trông khá cũ, và nó ghi công cụ vào hệ thống tập tin.
Có ai biết về bất kỳ loại đá quý nào khác có thể tạo số nhận dạng duy nhất toàn cầu không?
Tôi biết tôi chỉ có thể rơi trở lại:
(0..16).to_a.map{|a| rand(16).to_s(16)}.join
Nhưng nó không thực sự có vẻ giống như một GUID thích hợp ...
Sử dụng chuỗi ngẫu nhiên như vậy sẽ không hoàn toàn đúng; một số bit nhất định trong UUID chỉ định biến thể và phiên bản. Đối với UUID ngẫu nhiên, bạn có thể muốn biến thể 2 (RFC 4122) và phiên bản 4, trong trường hợp này 6 bit nhất định phải được đặt thành giá trị đúng. – jtpereyda
Có @dafrazzman là đúng. Ngẫu nhiên ghép nối với nhau một cái gì đó mà "giống như một UUID" không đảm bảo tính duy nhất. Trong khi không có UUID nào * thật sự * được đảm bảo, việc xây dựng một con số với số ngẫu nhiên là FAR dễ bị va chạm và không thể xứng đáng với nhãn "UUID". Chắc chắn đi với SecureRandom.uuid! – dooleyo