Tagabuo ng Maikling UUID

Lumikha ng compact na 22-character Base58-encoded UUIDs para sa URL-friendly na paggamit

Subukan ang mga halimbawang ito:

Ano ang Short UUID?

Short UUID ay isang teknik upang i-compress ang standard 128-bit UUIDs sa mas maiikling, URL-friendly na mga string. Kadalasang kasama dito ang:

  • Base conversion: Pag-convert ng UUID mula base-16 (hex) patungo sa mas mataas na base (karaniwang base-58 o base-62)
  • Pagpili ng character set: Paggamit ng URL-safe na character sets na walang mga ambiguous na karakter
  • Lossless compression: Pagpapanatili ng lahat ng impormasyon mula sa orihinal na UUID

Halimbawa ng transformasyon:

  • Standard UUID: f47ac10b-58cc-4372-a567-0e02b2c3d479
  • Short UUID (base-58): 2kLrTdCQVWFjc7dYXzzB5A

Paano gumagana ang Short UUID

  1. Alisin ang mga hyphen mula sa standard UUID
  2. I-convert ang resulting 32-character hex string sa decimal number
  3. I-convert ang decimal number sa mas mataas na base (58, 62, 64, atbp.)
  4. I-pad ang resulta kung kinakailangan upang matiyak ang consistent na haba

Karaniwang encoding alphabets ay kinabibilangan ng:

  • Base-58: Alphanumeric na walang mga ambiguous na karakter (0, O, I, l)
  • Base-62: Lahat ng alphanumeric na karakter (a-z, A-Z, 0-9)
  • Base-64: Alphanumeric kasama ang dalawang special na karakter (madalas + at /)

Mga Bentahe at Mga Pagsasaalang-alang

AdvantagesConsiderations
  • URL-friendly na format
  • Pag-save sa haba ng karakter (40-50%)
  • Pinahusay na karanasan ng user
  • Buong bidirectional na conversion
  • Base conversion overhead
  • Kumplikasyon sa implementasyon
  • Pagsasaalang-alang sa pag-iimbak sa database
  • Hindi standard na format

Paghahambing ng haba

FormatLengthSet ng CharacterExample
Standard UUID36 charsHex + hyphensf47ac10b-58cc-4372-a567-0e02b2c3d479
Hex (walang hyphens)32 chars0-9, a-ff47ac10b58cc4372a5670e02b2c3d479
Base-5822 charsWalang 0, O, I, l2kLrTdCQVWFjc7dYXzzB5A
Base-62~22 charsAlphanumeric3pqLYdcw9TGKxNVgeO0gOd
Base-64~22 charsAlphanumeric + mga simbolo9HrBC1jMQ3KlZw4CssPUeQ==

Karaniwang Base-58 Alphabet

Ang Base-58 alphabet ay dinisenyo upang maging visually unambiguous kapag ipinapakita sa parehong fixed-width at proportional fonts:

Character setContent
Numbers1-9 (hindi kasama ang 0)
Uppercase lettersA-Z (hindi kasama ang I, O)
Lowercase lettersa-z (hindi kasama ang l)

Mga karakter: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

Karaniwang Mga Gamit

  • Pagpapaikli ng URL: Mas compact na mga parameter ng URL
  • Mga pampublikong ID: Mga identifier ng user o nilalaman
  • Pag-optimize ng QR code: Mas kaunting mga karakter = mas simpleng mga code
  • Mga mobile application: Mas kaunting data na ipinapadala
  • Disenyo ng API: Mas malinis, mas compact na mga identifier ng resource
  • Pagbabahagi sa social media: Mas user-friendly na mga link

Mga Madalas Itanong

Ang mga Short UUID ba ay kasing unique ng standard UUIDs?

Oo. Ang mga Short UUID ay ibang representasyon lamang ng parehong 128-bit na halaga. Ang conversion ay lossless, pinapanatili ang lahat ng uniqueness properties ng standard UUIDs.

Maaari ko bang i-convert ang pagitan ng standard at Short UUID formats?

Oo. Ang conversion ay bidirectional - maaari mong i-encode ang standard UUID sa Short UUID at i-decode ito pabalik sa eksaktong parehong standard UUID.

Aling base encoding ang pinaka-inirerekomenda?

Mas madalas piliin ang Base-58 dahil iniiwasan nito ang mga ambiguous na karakter (0/O at l/I) habang nananatiling URL-safe nang hindi nangangailangan ng URL encoding.

Gaano ba kaikli ang mga Short UUID?

Ang mga standard UUID ay may 36 na karakter (kasama ang mga hyphen). Ang mga Short UUID ay karaniwang may 22 karakter kapag gumagamit ng base-58/62/64 encoding, isang pagbawas ng mga 40%.

Dapat ko bang i-imbak ang mga Short UUID sa aking database?

Karaniwang inirerekomenda na i-imbak ang standard UUID format sa mga database at i-convert lamang sa Short UUID kapag ipinapakita sa mga user o sa mga URL. Nagbibigay ito ng mas mahusay na compatibility sa mga database UUID types.

Resources