【发布时间】:2017-07-23 13:55:03
【问题描述】:
我想为自己注册服务的用户创建唯一的<client-key> 和<client-secret>。
所以,我一直在寻找相同的方法并想出了以下选项:
- uuid
- binascii.hexlify(os.urandom(x))
-
random.SystemRandom()
这是一个愚蠢的问题,但我想知道哪种实现使用起来更安全(有适当的解释)?为什么?与其他人相比,使用它有什么优势?
注意:
AFAIK,
random.SystemRandom()使用os.urandom(x)。所以比较主要是uuid和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'
我不确定解决方案。因此,我们将不胜感激。
附言
如果有适用于 Python 2.x 和 3.x 的解决方案,那就太好了。
【问题讨论】:
-
g/uuid 被设计为 unique 而不是 random。如果你想从 urandom 随机生成一些东西。
-
@AlexK. 这是有道理的。
标签: python python-2.7 python-3.x random sequence