从文档中我收集到,宝石更“安全”成为一个真正独特的UUID,而SecureRandom.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 举报,一经查实,本站将立刻删除。