ruby – SecureRandom.uuid和UUID gem

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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...