我想创造独一无二的<client-key>
and <client-secret>
对于自行注册该服务的用户。
因此,我正在寻找相同的内容并提出了以下选项:
- uuid https://docs.python.org/2/library/uuid.html#uuid.UUID
- binascii.hexlify(os.urandom(x))
-
random.SystemRandom() https://docs.python.org/2/library/random.html?highlight=random.systemrandom#random.SystemRandom
这是一个愚蠢的问题,但我想知道哪种实现使用起来更安全(有正确的解释)?为什么?与其他产品相比,使用它有什么优势?
Note:
AFAIK, random.SystemRandom()
uses os.urandom(x)
。所以比较主要是在uuid
and random.SystemRandom()
.
到目前为止,这是我尝试过的:
1)
import random
temp = random.SystemRandom()
random_seq = ''.join(temp.choice(CHARACTER_SET) for x in range(x))
>>> 'wkdnP3EWxtEQWnB5XhqgNOr5RKL533vO7A40hsin'
2)
import uuid
str(uuid.uuid4())
>>> 'f26155d6-fa3d-4206-8e48-afe15f26048b'
我不确定解决方案。因此,任何帮助将不胜感激。
P.S.如果有任何解决方案适用于 Python 2.x 和 3.x,那就太好了。
这没有什么区别,all其中有使用os.urandom
Python 3 和 2 中均如此。uuid4
just 实例化一个新的UUID通过传入对象16随机字节 https://github.com/python/cpython/blob/3.6/Lib/uuid.py#L600 to it:
def uuid4():
"""Generate a random UUID."""
return UUID(bytes=os.urandom(16), version=4)
所以从角度来看随机性是如何产生的,这些没有区别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)