红宝石的SecureRandom.uuid (Ruby1.9.3)和UUID之间有什么区别吗?UUID宝石是一种“旧”的做事方式吗?
从文档中我了解到,gem作为一个真正唯一的UUID更“安全”,而SecureRandom.uuid更像是一个随机字符串,更有可能不是唯一的。此外,UUID似乎允许基于文件的持久化来帮助这一点。
所以我希望听到一些比我更有洞察力的人对这件事的看法。
发布于 2013-07-11 01:01:32
有几种生成UUID的方法。
维基百科在列出它们方面做得很好。
identifier
v4 UUID:
关于随机的关键思想是,当涉及到加密时,这实际上是很难生成的。大多数随机数生成器是一个数学公式,只需看起来是随机的,对于大多数应用程序来说都很好。许多程序都会使用$pid _\_产生一个随机的种子。
不是很有希望..。我知道请求是什么时候生成的,只有65,534个pids。我可以从中找出随机的种子。
因此,如果您在与UUIDv4数相同的时间(同一秒)在100台机器上通过PID数在100台机器上使用$pid _\_这样做是相当容易的。
for MACH in `cat machine_list`; do ; ssh $MACH -c "restart something" & ; doneSecureRandom:
SecureRandom的代码,尝试openssl,/dev/urandom,然后是win32.
当从/dev/urandom读取时,它是非常随机的,但是如果系统中没有足够的混乱,urandom将提供随机数据。当从/dev/随机读取时,它的“非常随机”,如果没有足够的混乱,/dev/随机将被阻塞。
UUID:
UUID创业板使用rand() R=兰德(0x100000000).pack "N“
为mac地址。
UUID也不提供v4 UUID :)
实际上,如果我有一个md5或uuid碰撞,我是买彩票!
https://stackoverflow.com/questions/16650764
复制相似问题