微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/ruby/271560.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐