Short UUID 生成器

生成比标准 UUID 更紧凑、更适合 URL 的 Short UUID。Short UUID 使用 Base58 格式编码标准 UUID 数据,产生 22 字符字符串而不是 36 字符。

尝试这些示例:

什么是 Short UUID?

Short UUID 是一种将标准的 128 位 UUID 压缩成更短、更适合 URL 的字符串的技术。它通常涉及:

  • 进制转换:将 UUID 从 16 进制(十六进制)转换为更高的进制(通常是 58 进制或 62 进制)
  • 字符集选择:使用不含歧义字符的 URL 安全字符集
  • 无损压缩:保留原始 UUID 的所有信息

转换示例

  • 标准 UUID:f47ac10b-58cc-4372-a567-0e02b2c3d479
  • Short UUID(58 进制):2kLrTdCQVWFjc7dYXzzB5A

Short UUID 如何工作

  1. 移除标准 UUID 中的连字符
  2. 将得到的 32 字符十六进制字符串转换为十进制数
  3. 将十进制数转换为更高的进制(58、62、64 等)
  4. 如有必要,填充结果以确保一致的长度

常见的编码字母表包括:

  • 58 进制:不含歧义字符(0、O、I、l)的字母数字组合
  • 62 进制:所有字母数字字符(a-z、A-Z、0-9)
  • 64 进制:字母数字加两个特殊字符(通常是 + 和 /)

优势与考虑因素

优势考虑因素
  • URL 友好格式
  • 字符长度节省(40-50%)
  • 提升用户体验
  • 完全双向转换
  • 进制转换的开销
  • 实现复杂性
  • 数据库存储考虑
  • 非标准格式

长度比较

格式长度字符集示例
标准 UUID36 个字符十六进制 + 连字符f47ac10b-58cc-4372-a567-0e02b2c3d479
十六进制(无连字符)32 个字符0-9, a-ff47ac10b58cc4372a5670e02b2c3d479
58 进制22 个字符不含 0, O, I, l2kLrTdCQVWFjc7dYXzzB5A
62 进制约 22 个字符字母数字3pqLYdcw9TGKxNVgeO0gOd
64 进制约 22 个字符字母数字 + 符号9HrBC1jMQ3KlZw4CssPUeQ==

常用的 58 进制字母表

58 进制字母表设计为在等宽和比例字体中都能清晰可辨:

字符集内容
数字1-9(不包括 0)
大写字母A-Z(不包括 I、O)
小写字母a-z(不包括 l)

字符:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

常见用例

  • URL 缩短:更紧凑的 URL 参数
  • 面向公众的 ID:用户或内容标识符
  • 二维码优化:更少的字符 = 更简单的码
  • 移动应用:减少数据传输
  • API 设计:更清晰、更紧凑的资源标识符
  • 社交分享:更友好的链接

常见问题

Short UUID 是否与标准 UUID 一样唯一?

是的。Short UUID 只是同一个 128 位值的不同表示形式。转换是无损的,保留了标准 UUID 的所有唯一性特性。

我可以在标准和 Short UUID 格式之间转换吗?

可以。这种转换是双向的 - 您可以将标准 UUID 编码为 Short UUID,并将其解码回完全相同的标准 UUID。

哪种进制编码最推荐?

58 进制通常是首选,因为它避免了容易混淆的字符(0/O 和 l/I),同时保持 URL 安全,不需要 URL 编码。

Short UUID 比标准 UUID 短多少?

标准 UUID 有 36 个字符(带连字符)。使用 58/62/64 进制编码时,Short UUID 通常有 22 个字符,减少了约 40%。

我应该在数据库中存储 Short UUID 吗?

通常建议在数据库中存储标准 UUID 格式,只在向用户显示或在 URL 中使用时转换为 Short UUID。这提供了与数据库 UUID 类型更好的兼容性。

资源