On Jun 28, 12:29 pm, Luke Plant <[EMAIL PROTECTED]> wrote: > https://example.com/reset/34-7127f83ebf8ce7ed22bdc50a50572a30 > > i.e. > > https://example.com/reset/{uid}-{hash}
I've been playing with this a bit and the one thing that was concerning me is that the UID on large sites can end up being quite long, potentially busting the 72 character length limit for the overall URL. What do you think about using base36 encoding for the UID? That can significantly shorten the number of URL characters needed to represent large numbers: >>> int_to_base36(23452) 'i3g' >>> int_to_base36(234524) '50yk' This would also be a neat excuse to get base36 support in to django.utils, further emphasizing Django's philosophy of really caring about URLs. (base32, where 0, o, i, l and 1 are omitted as being too easily confused, would be useful as well: http://crockford.com/wrmg/base32.html). If you have to include an ID in a URL encoding it to take up less space (and make its ID-ness a bit less obvious) is a handy trick - see TinyURL, YouTube and Reddit for examples. A further micro-optimisation is to leave out the hyphen entirely, since an SHA-1 hash is always 40 characters long (we should probably use that instead of MD5). You can cut off the last 40 characters and use what's left as the base-36 UID. Cheers, Simon --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---