如何使用Python为相同的输入id生成唯一的id?

时间:2017-10-15 08:29:01

标签: python uuid

我有一个id列表,我想使用Python为列表中的每个id显示一个假id。

我使用了uuid1()但是当我的列表中存在重复的id时,程序会停止并且不会为相同的输入id生成相同的随机ID。

 print uuid.uuid1(data['user']['id']).int>>64

2 个答案:

答案 0 :(得分:1)

你可以哈希你的id:

import hashlib
id = 12
hashlib.sha256(str(id).encode()).hexdigest() # with python2.x you don't need to encode()
# => '6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918'

你必须在某处存储对应关系,因为无法从哈希中检索id。

答案 1 :(得分:0)

来自python uuid doc

,uuid1取决于当前时间。

通过重用相同的命名空间,您可以使用uuid3为同一输入创建可重现的uuid:

namespace = uuid.uuid4()
...
print uuid.uuid3(namespace, "1")