Обратите внимание на страницу, на которую вы ссылаетесь, где говорится, что этот модуль соответствует по интерфейсу (и реализации, по крайней мере, в случае одной конкретной версии) тому, что находится по адресу http://rubydoc.info/stdlib/securerandom/1.9..2/SecureRandom, где вы можете найти более подробную информацию.
В результатах таких звонков нет присущей уникальности. Конечно, учитывая, что система хорошо засеяна и является псевдослучайной, как утверждается, вероятность коллизий должна быть настолько мала, как это предполагает комбинаторика. Это «парадокс дня рождения», и, в частности, шансы на столкновение соответствуют шансам на успешную «атаку дня рождения» ( http://en.wikipedia.org/wiki/Birthday_attack), а более подробную информацию можно найти в Википедии. Не сказать, что практическая псевдослучайность дает строгие гарантии, но можно было бы поверить, что она близка.
Если вам конкретно нужна уникальность, вам нужно обеспечить это самостоятельно. Это не так просто сделать, и вы должны быть осторожны, чтобы достичь ожидаемых условий. Вы также должны быть уверены, что охватываете все возможности, и что если вы — в относительно редких случаях — создадите дубликат токена, вы сможете с этим справиться.
person
Ming
schedule
07.09.2011