gpt4 book ai didi

user-interface - 缩写 UUID

转载 作者:行者123 更新时间:2023-12-03 09:33:04 29 4
gpt4 key购买 nike

当 id 是我们对目标的全部了解时,将 UUID 缩写为在用户界面中的按钮中使用的好方法是什么?

GitHub 似乎通过从开头取 7 个字符来缩写提交 ID。例如 b1310ce6bc3cc932ce5cdbe552712b5a3bdcb9e5将在按钮中显示为 b1310ce .虽然不完美,但这个较短的版本足以在显示的上下文中看起来独一无二。我正在寻找适用于 UUID 的类似解决方案。我想知道 UUID 的某些部分是否比其他部分更随机。

最直接的选择是在破折号处拆分并使用第一部分。 UUID 42e9992a-8324-471d-b7f3-109f6c7df99d然后将缩写为 42e9992a .我能想出的所有解决方案似乎都同样随意。也许有一些我没有想到的开箱即用的用户界面设计解决方案。

最佳答案

问题是您是要显示 UUID 的一部分还是仅确保唯一字符串显示为较短的唯一字符串。如果您想专注于后者,这似乎是您在开头段落中建议的目标:

(...) While not perfect this shorter version is sufficient to look unique in the context where it is displayed. (...)



你可以使用散列。

Hashing :

Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string. Hashing is used to index and retrieve items in a database because it is faster to find the item using the shorter hashed key than to find it using the original value.



散列在许多流行语言中非常普遍且易于使用; Python中的简单方法:
import hashlib
import uuid
encoded_str = uuid.UUID('42e9992a-8324-471d-b7f3-109f6c7df99d').bytes
hash_uuid = hashlib.sha1(encoded_str).hexdigest()
hash_uuid[:10]
'b6e2a1c885'

可以预期,字符串的微小变化将导致正确显示唯一性的不同字符串。
# Second digit is replaced with 3, rest of the string remains untouched 
encoded_str_two = uuid.UUID('43e9992a-8324-471d-b7f3-109f6c7df99d').bytes
hash_uuid_two = hashlib.sha1(encoded_str_two).hexdigest()
hash_uuid_two[:10]
'406ec3f5ae'

关于user-interface - 缩写 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62040704/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com