@H_404_1@ruby的SecureRandom.uuid(
Ruby 1.9.3)和UUID gem之间有区别吗? UUID宝石是“老”的做事方式吗?
从文档中我收集到,宝石更“安全”成为一个真正独特的UUID,而SecureRandom.uuid更是一个随机字符串,有更大的机会不是唯一的.此外,UUID似乎允许基于文件的持久性来协助这一点.
所以我希望听到有些人比我更有洞察力.
解决方法
有几种生成UUID的方法.
维基百科做的很好,把它们列出来.
http://en.wikipedia.org/wiki/Universally_unique_identifier
v4 UUIDs:
关于随机的关键思想是,当涉及加密时,其实很难生成.大多数随机数生成器是一个数学公式,只需要随机查找,对于大多数应用程序就可以正常工作.许多程序将使用$pid |时间,生成随机种子.
哪个,不是很有希望…我知道什么时候生成请求,只有65,534个ids.我可以从中找出随机种子.
所以,如果你的UUIDv4数字生成器在同一时间(同一秒)与$pid |种子time()在100机器上带有PID编号,那么你有(我猜)一个100/65536的重复机会.这可以很容易地这样做
for MACH in `cat machine_list`; do ; ssh $MACH -c "restart something" & ; done
SecureRandom的:
The code from SecureRandom,tries openssl,the /dev/urandom,then win32…
当从/ dev / urandom读取它是非常随机的,但如果系统中没有足够的混乱,urandom将提供随机数据.当从/ dev / random读取时,它的“非常随机”,如果没有足够的混乱,/ dev / random将阻塞.
UUID:
The UUID gem uses rand()
06001
为mac地址.
UUID也不提供v4 UUID