ruby – SecureRandom.uuid和UUID gem

前端之家收集整理的这篇文章主要介绍了ruby – SecureRandom.uuid和UUID gem前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@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

猜你在找的Ruby相关文章