在Python中,我正在使用uuid4()方法创建一个唯一的字符集。但是我找不到一种方法来将其限制在10或8个字符。是否有任何方法?
uuid4()
ffc69c1b-9d87-4c19-8dac-c09ca857e3fc
谢谢。uuid4()
ffc69c1b-9d87-4c19-8dac-c09ca857e3fc
谢谢。import shortuuid
shortuuid.uuid()
'vytxeTZskVKR7C7WgdSP3d'
尝试:
x = uuid4()
str(x)[:8]
输出:
"ffc69c1b"
你可以使用 shortuuid 包。
pip install shortuuid
那么它就类似于UUID包。
import shortuuid
shortuuid.uuid()
输出
'vytxeTZskVKR7C7WgdSP3d'
自定义长度UUID
shortuuid.ShortUUID().random(length=22)
输出
'RaF56o2r58hTKT7AYS9doj'
shortuuid.ShortUUID().random(length=22)
根据您提供的文档生成了一个加密安全的随机字符串,但这不再是uuid。 - wehnsdaefflae之前的答案没有提供UUID,可能是因为它们截断了字符串,或者根本没有生成UUID。根据文档,如果你截断了字符串“[t] ID将不再具备通用唯一性[...]”,文档描述ShortUUID().random()
生成一个加密安全的字符串而不是UUID。
但是,你可以通过改变字母表中字符的数量来间接地改变UUID的长度。在ShortUUID.encoded_length()
的实现中,你可以看到UUID长度是int(math.ceil(16 * math.log(256) / math.log(len(alphabet))))
。你可以通过shortuuid.set_alphabet()
改变字母表。
字母表中的字符越多,UUID就越短,但仍然是唯一的。