I read this post : How to code a URL shortener? that perfectly explains how to create a classical URL shortener (please read it to understand my question below).
But I'd like to add 3 more requirements that match my specific needs, and I'm not sure how to deal with that:
1 (the most important) -> I'd like that no one can guess an URL, just by watching other URLs.
Indeed, curently (in the post I quoted): generated URLs are just following themselves, changing the last character. So,
if F(2789) = "ajuka"
, then it's easy to know that F(2790) = "ajukb"
Of course, the function still MUST be bijective, and reversible (find the id from the url, and find the url from the id => hash functions does not work).
2 -> I'd like to remove some characters that may be confusing (0/O/l/I) from the a-z/A-Z/0-9 list. This not seem really hard.
3 -> I'd like to have a minimum amount of characters in the URL (let's say 5), which means my first url will be "aaaaa" (not "a").
Thanks.