Je zou een hexadecimaal ID kunnen vertegenwoordigen in een grondtal hoger dan 16 om de tekenreeksrepresentatie korter te maken. Ruby heeft ingebouwde ondersteuning voor het werken met bases van 2 tot 36 .
b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"
Om het terug te converteren naar een tekenreeks van 24 tekens, zou je zoiets als dit kunnen doen:
'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"
Om een betere "compressie" te bereiken, zou u de id in base hoger kunnen weergeven dan 36 . Er zijn Ruby-bibliotheken die je daarbij kunnen helpen. all-your-base
gem is zo'n bibliotheek.
Ik raad basis 62 aan representatie omdat het alleen 0-9 . gebruikt , a-z en A-Z tekens, wat betekent dat het standaard URL-veilig is.