首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UUID4的较短版本

UUID4的较短版本
EN

Stack Overflow用户
提问于 2019-03-19 03:44:04
回答 2查看 1.3K关注 0票数 1

我生成的是python uuid4字符串。

我使用它来识别我的服务帐户,但是我的一个系统(GCP服务帐户)有30个字符的限制,使用其他东西已经太晚了:

代码语言:javascript
复制
Service account ID must be between 6 and 30 characters.
Service account ID must start with a lower case letter, followed by one or more lower case alphanumerical characters that can be separated by hyphens.

如何才能在冲突风险有限的情况下获得较短版本的UUID?

我见过一些base64编码技巧,但我能做的最短的只有22。理想情况下,我应该有类似git commit hash的东西,因为冲突的风险是有限的。

EN

回答 2

Stack Overflow用户

发布于 2019-03-19 03:53:50

如何才能在冲突风险有限的情况下获得较短版本的UUID?

删除索引12处的字符,因为它始终是4- not very random

同样,删除索引16处的字符,因为它总是在8 9 a b中。

您将在0-9a-f中留下30个相当随机的字符。碰撞仍然足够小,可以忽略。请注意,uuid4s可能以数字开头,因此您可能需要在生成器中使用拒绝采样(或者直接跳过中间人,直接使用random生成您的is,实际上在这里使用uuid4没有太多意义)。

票数 4
EN

Stack Overflow用户

发布于 2019-03-19 03:45:52

使用UUID的前15个字符和后15个字符。省略中间的所有内容。

代码语言:javascript
复制
import uuid

uuid_str = str(uuid.uuid4()).replace("-","")
uuid_str = uuid_str[:15]+uuid_str[-15:]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55228975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档