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.