【问题标题】:Is there a standard or alternative for shorter UUIDs?是否有较短 UUID 的标准或替代方案?
【发布时间】:2020-04-06 09:53:05
【问题描述】:
UUID 标准有多个版本。例如,版本 4 基于完全随机的输入。但它仍然对版本信息进行编码,并且只使用了可能的 128 位中的 125 位。
但是对于通过 HTTP 传输这些,在 BASE64 中对它们进行编码会更有效。有这方面的库 (https://github.com/skorokithakis/shortuuid)。
但我想知道的是:是否有较短的 ID 字符串的替代标准?当然,我可以将一个版本字节 + n 个随机字节拼凑在一起并将它们编码为 BASE64,拥有我自己的工作“短随机 ID 方案”,但我想知道在我自己制作之前是否有人已经指定了任何替代方案。
【问题讨论】:
标签:
encoding
base64
standards
uuid
【解决方案1】:
没有更短的标准。
许多人都问过同样的问题,并且都得出了相同的结论:UUID 对他们的特定要求来说太过分了。他们开发了自己的替代方案,基本上可以归结为一定长度的随机字符串(基于他们的数据集的预期大小),采用更有效的编码,如 base64。他们中的许多人已经发布了用于处理这些字符串的库。然而,他们都面临着同样的两个问题:
- 它们无法处理任意大的数据集(UUID 如此之大的原因)
- 它们没有标准化,这意味着没有真正的互操作性。
如果这些问题都不影响您,那么您可以随意选择任何可用的方案或自行选择。但是,如果您发现自己的要求有误,请考虑未来的成本,以及必须改变的成本是否可以证明从一开始就没有使用经过验证的通用系统所获得的空间或复杂性方面的任何微小优势。